Nginx安装SSL证书指南

1.合成Nginx所需的证书文件:

新建一个记事本文件,复制证书(.crt)内容到记事本的第一段,复制证书链(.ca)内容到第二段;(如下图)

然后保存,将记事本重命名为:你的域名_chain.com.crt(例如:sslsky.com_chain.crt);

如需要pem格式证书,可直接修改后缀为:你的域名_chain.com.pem

准备好以下文件:
sslsky.com_chain.crt (包含证书链的证书文件) sslsky.com.key (私钥文件)

 

2.环境检测,检测命令如下(测试nginx是否支持SSL)

nginx -V

如果有显示 –with-http_ssl_module 表示已编译openssl,支持安装ssl

如果没有安装请下载nginx源码重新编译

./configure --with-http_stub_status_module --with-http_ssl_module
make && make install

 

3.配置Nginx

server {
listen 80;
listen 443 ssl;
server_name www.sslsky.com;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_certificate /etc/ssl/sslsky.com.crt;
ssl_certificate_key /etc/ssl/sslsky.com.key;
ssl_prefer_server_ciphers on;
#自动跳转到HTTPS (可选)
if ($server_port = 80) {
rewrite ^(.*)$ https://$host$1 permanent;
}
location / {
root /home/sslsky/;
index index.php;
}
}

以上配置仅供参考,其他参数请根据生产环境需要添加。

 

4.安装后重启nginx使其生效

centos6
service nginx restart
centos7
systemctl restart nginx

 

问题排查:

如果使用CDN(加速器),需要在CDN上面安装证书,国内免费加速的都不支持https(已知阿里云cdn支持)

检查443端口是否启动  使用下面命令 netstat -apnt | grep 443   (如果没有启动检查配置文件或者端口是否冲突)

443端口如果已经启动,但不能访问,请检查防火墙(或者安全狗) ,允许443端口.

linux iptables使用下面命令:

iptables -A INPUT -p tcp -m tcp --dport https -j ACCEPT