小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
当我们需要使用https进行访问时,需要通过Nginx配置SSL证书,因此第一步我们需要先获取SSL证书
SSL证书获取
SSL证书的获取这里我是使用腾讯云进行获取的,你们也可以从其他途径进行获取。
从腾讯云中SSL证书这里可以申请免费证书,申请完之后进行下载:
下载完之后我们可以看到又一个Nginx文件夹,里面有一个crt后缀的文件和key后缀的文件,这两个文件我们需要放置到你的服务器当中,这里我将这两个文件放在了/usr/local/nginx/conf文件夹当中
修改nginx.conf文件
我们需要将ssl的证书配置及你需要进行转发的路由在nginx.conf文件夹中进行配置
cd /usr/local/nginx/conf
vi nginx.conf
我们需要在nginx.conf http中去添加一个server节点
server {
listen 443 ssl;
server_tokens off;
keepalive_timeout 5;
# 配置域名
server_name www.lirui.site;
#填写您的证书文件名称,例如:1_lirui.site_bundle.crt
ssl_certificate 1_lirui.site_bundle.crt;
#填写您的私钥文件名称,例如:2_lirui.site.key
ssl_certificate_key 2_lirui.site.key;
ssl_session_timeout 5m;
# 可参考此 SSL 协议进行配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#可按照此加密套件配置,写法遵循 openssl 标准
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /data/dist;
index index.html index.htm;
#配置转发路径
proxy_pass http://1.15.154.207:80/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置好后,我们就可以去重启了
cd /usr/local/nginx/sbin/nginx
./nginx
结果发现重启不了,出现如下错误
nginx:[emerg]unknown directive ssl,就是这个错误提示
这是为什么呢? 我们配置SSL证书是需要引用到nginx中SSL这个模块,当时一开始我们安装的nginx并没有将SSL模块编译进去,所以我们需要对SSL模块进行引用编译,但是不需要我们重启安装nginx,我们只需到你自己当时下载解压的nginx目录下进行操作即可:
#进入nginx实际安装目录,看你自己的实际安装路径
cd /data/mynginx/nginx-12.2
# 引入ssl模块
./configure --with-http_ssl_module
执行make命令
make
在执行完如上命令后,我们会在安装目录中看到一个objs文件夹,里面多出来一个nginx文件
我们将这个nginx文件移到 /usr/local/nginx/sbin中,覆盖里面的nginx文件即可
覆盖完之后我们可以验证一下ssl模块是否引入成功
cd /usr/local/nginx/sbin
./nginx -v
如果出现如上图,则证明ssl模块引入成功,然后重启启动nginx即可,整个ssl证书的配置就大功告成了。