nginx配置StartSSL证书,解决Firefox浏览器不信任StartSSL免费SSL的问题

StartSSL上申请免费的SSL证书,申请过程就不多说了,然后把申请到的key和crt文件上传到服务器,比如:/etc/nginx/conf.d/ssl/***.crt,/etc/nginx/conf.d/ssl/***.key

nginx的ssl.conf配置文件

server {  
    listen 80;
    server_name zhangyanwu.cn;
    rewrite ^(.*) https://zhangyanwu.cn permanent;
}
server {  
    server_name zhangyanwu.cn;
    listen 443;
    ssl on;
    ssl_certificate /etc/nginx/conf.d/ssl/zhangyanwu.crt;
    ssl_certificate_key /etc/nginx/conf.d/ssl/zhangyanwu.key;
}

Firefox等浏览器不信任证书的问题

重启nginx,Chrome和Safari可以正常显示Https,但是Firefox、移动端Chrome和QQ相关浏览器显示不受信任的证书,原因是Firefox等仅包含了StartCom的根证书,而中间证书需要服务器提供,所以会出现类似问题。如需认证,需要做一下配置。首先你需要下载你的证书等级对应的CA证书(免费的Class 1证书下载Class 1 Intermediate Server CA)。 CA 将下载的CA证书sca.server1.crt追加到zhangyanwu.crt

wget https://www.startssl.com/certs/sca.server1.crt  
cat sca.server1.crt >> zhangyanwu.crt  

重启nginx,输入申请证书时私钥的密码,现在Firefox等浏览器就可以正常访问了。

其它问题

如果配置文件测试或重启报错,读取到意外错误行

[emerg]: SSL_CTX_use_certificate_chain_file(“/etc/nginx/conf.d/ssl/zhangyanwu.crt”) failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib)
configuration file /etc/nginx/nginx.conf test failed  

应该是证书合并时拼到了一行

-----END CERTIFICATE----------BEGIN CERTIFICATE-----

修改为

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

保存重启nginx即可!这个问题我没碰到,查询资料的时候发现有别人碰到这问题,也一块写了出来。

Copyright ©2015, All Rights Reserved 京ICP备15053126号