之前将Ubuntu服务器由LAMP切换到LEMP,由于Apache和Nginx的SSL证书的配置方式不同,https站点只能先暂停,今天更换了Comodo Positive SSL证书后https站点恢复继续访问。在此记录一下如何在Nginx环境下配置SSL证书。
1.到Comodo的管理后台下载Comodo Positive SSL证书。下载完成后解压的压缩包里包含以下几个证书文件
www_lidaren_com.crt
COMODORSADomainValidationSecureServerCA.crt
COMODORSAAddTrustCA.crt
AddTrustExternalCARoot.crt
2.使用CAT命令将这几个证书文件合并到一个文件,如果使用notepad的话需要注意按顺序添加。
cat ./www_lidaren_com.crt ./COMODORSADomainValidationSecureServerCA.crt ./COMODORSAAddTrustCA.crt ./AddTrustExternalCARoot.crt > www_lidaren_com_new.crt
3.上传证书和之前创建CSR时生成的.key文件到服务器,这里我把证书放在这里
/usr/share/nginx/certs
4.为证书和Key文件在/etc/ssl目录下创建符号链接(可以省略)
ln -s /usr/share/nginx/certs/www_lidaren_com.crt /etc/ssl/certs/www_lidaren_com.crt
ln -s /usr/share/nginx/certs/www_lidaren_com.key /etc/ssl/private/www_lidaren_com.key
5.配置Nginx的站点信息,直接将http的配置Copy一份即可。再添加或修改以下内容
server
{
listen 443;
server_name www.lidaren.com;
index index.php index.html index.htm ;
root /usr/share/nginx/html/;
ssl on;
ssl_certificate /etc/ssl/certs/www_lidaren_com.crt ;
ssl_certificate_key /etc/ssl/private/www_lidaren_com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
####
其他配置省略
####
}
6.测试一下Nginx的配置是否正确
nginx -t
7.重启Nginx服务器,测试一下服务器的SSL访问即可。
service nginx restart