我们的服务遍布中国

我们的服务遍布中国
乃至世界

光网所服务的品牌地域与城市
北京 天津 上海 广州 深圳 香港 厦门 江苏 浙江 山东
重庆 长沙 武汉 成都 西安 宁夏 丽江 青海 云南 乌鲁木齐
黑龙江 内蒙古 河北 ...
光网服务与合作的全球各地
美国 加拿大 德国 法国 英国 瑞士 意大利 荷兰
印度 日本 韩国 ...

不论你的品牌在何处
我们都可以提供完善的服务与帮助

致电

0512-56969630
您所在的位置:首页 > SSL证书

Nginx配置SSL证书StartSSL,解决Firefox不信任问题

发布时间:2016/10/3 2:55:15 浏览:97打印字号:

先在StartSSL上申请免费一年的SSL证书,具体过程网上很多教程。然后把申请到的key和crt文件上传到服务器,比如/usr/local/nginx/certs/.

Nginx配置SSL证书

直接贴上我的nginx的部分配置:


server {        listen 443;    server_name   liuzhichao.com www.liuzhichao.com ;        ssl on;        ssl_certificate /usr/local/nginx/ssl/ssl.crt;        ssl_certificate_key /usr/local/nginx/ssl/ssl.key;     if ($http_transfer_encoding ~* chunked) {         return 444;      }    gzip on;    if (-d $request_filename) {        rewrite ^/(.*)([^/])$ $scheme://$host/$1$2/ permanent;     }     root   /home/wwwroot/;     ssi off;     ssi_silent_errors off;     ssi_types text/shtml;     location / {         index  index.html index.htm index.shtml index.php;         autoindex    off;     }    location /nginx_status {        stub_status on;        access_log off;    }     location ~ (favicon.ico) {          log_not_found off;         access_log   off;      }     location ~* \.(gif|jpg|jpeg|png|bmp|swf)$ {         expires 1y;     }     location ~* \.(js|css)$ {         expires 7d;     }    #------------     location ~* ^(.+)\.(php[3-9]?|phtm[l]?)(\/.*)*$ {         set $real_script_name $1.$2;         set $path_info $3;         if (!-f $document_root$real_script_name) {             return 404;         }          fastcgi_pass 127.0.0.1:8999;         ** fastcgi_param HTTPS on;**          include enable_php.conf;     }}

现在重启Nginx,Chrome应该能正常显示Https.如果只想使用Https连接,可以再添加一个server,然后跳转到https

   listen 80;    server_name   liuzhichao.com www.liuzhichao.com ;   rewrite     ^   https://$server_name$request_uri? permanent;}

解决Firefox不信任StartSSL证书问题

wget http://cert.startssl.com/certs/ca.pemwget http://cert.startssl.com/certs/sub.class1.server.ca.pemcat ca.pem sub.class1.server.ca.pem > >  ca-certs.crtcat ca-certs.crt > >  ssl.crt

再次重启Nginx,本想这下Firefox也应该能正常识别证书了,但是重启Nginx遇到了SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line error错误。

[emerg]: SSL_CTX_use_certificate_chain_file("/usr/local/nginx/certs/ssl.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 /usr/local/nginx/conf/nginx.conf test failed

这个的意思就是server.crt读取到意外错误行.这是因为我们在合并StartSSL提供的crt证书时,直接cat到了ssl.crt里。使用vi或者nano命令打开并编辑ssl.crt,找到:

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

修改为:

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

保存这个crt文件,再次重启Nginx服务,输入申请证书时私钥的密码,启动成功后,现在使用Firefox访问网站也能信任证书了。