nginx添加ssl
一、证书申请
以腾讯云申请ssl为例
申请地址
https://console.cloud.tencent.com/ssl
点击免费申请
确认证书类型
按照相关步骤填写
二、创建域名解析
如果上面证书申请时,如果在选择验证方式的时候选择的时,选择自动添加dns验证,则不需要这一步
添加DNS验证
将下图中红色区域添加到DNS解析中去
直至ssl的状态为已签发才能使用
三、服务器放开443端口
在服务器的访问规则中的添加443端口
四、将证书导入到nginx服务器上
-
下载已经签发的证书
-
解压证书
-
将解压文件中的nginx文件拷贝服务器中
-
上传证书到/usr/local/nginx/cert文件夹下
五、配置nginx
我自己服务器nginx的地址为:/usr/local/nginx 我自己服务器nginx源码地址:/usr/local/nginx/nginx-1.17.5
验证nginx是否安装-with-http_ssl_module
[root@anjingsi sbin]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.17.5
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --with-http_ssl_module
[root@anjingsi sbin]#
如果configure arguments后没有with-http_ssl_module则没有安装
安装插件
- 进入nginx的源码目录,执行命令
./configure --with-http_ssl_module
make install
- 再次验证插件是否安装完成
如果在源码目录中的objs/nginx验证是含有该插件,启动的sbin/nginx中没有,则先将启动目录中的nginx文件备份,将objs文件夹中的nginx替换启动目录中的sbin中
修改nginx配置
server{
listen 80;
listen 443 ssl;
server_name blog.andoudou.top;
#证书文件名称
ssl_certificate /usr/local/nginx/cert/1_blog.andoudou.top_bundle.crt;
#私钥文件名称
ssl_certificate_key /usr/local/nginx/cert/2_blog.andoudou.top.key;
#SSL性能调优
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
}
重启nginx,使用https访问是否生效
如果无法访问,请检查防火墙是否放开443端口
注意:本文归作者所有,未经作者允许,不得转载