1,按照如下格式修改nginx.conf 配置文件,80端口会自动转给443端口,这样就强制使用SSL证书加密了。访问http的时候会自动跳转到https上面。
server {
listen 80;
server_name www.域名.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443;
server_name www.域名.com;
root /home/www;
ssl on;
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
}
/etc/nginx/certs/server.crt 和 /etc/nginx/certs/server.key 是证书文件和私钥文件放置路径,这个根据自己的情况修改。
2,修改配置文件后,重启nginx以为大功告成。没想到几分钟后收到了startssl的邮件。提示 It seems, that the installation of your server certificate with
serial number 1*** for www.***** is not complete!
让参考http://www.startssl.com/?app=20,根据参考提示需要合并证书,于是有了下面这几个步骤:
wget http://cert.startssl.com/certs/ca.pem
wget http://cert.startssl.com/certs/sub.class1.server.ca.pem
cat ca.pem sub.class1.server.ca.pem >> ca-certs.crt
cat ca-certs.crt >> server.crt
这是因为需要把 Startssl 的根证书和sub class1的证书附上,因为是他们把证书颁发给你,浏览器需要这张证书才认识你的证书。最后重启nginx,在 Firefox / Chrome / Opera / Safari / IE 6、7、8 下测试均没问题。这样我就有了一个有效期一年的https站点咯。O(∩_∩)O哈哈~
注意:如果忘记做第2步的话,在以上的浏览器下访问均会提示不信任。