Startssl证书+Nginx搭建https网站

Startssl 是一家提供免费 SSL 证书的公司,我们可以用其搭建 https 网站,貌似可以被除去 Opera 外的所有主流浏览器所信任,过程简单记录如下:
1. 打开 http://www.startssl.com/ ,注册一个用户,注意这个网站是用证书验证用户身份的,所以证书一定备份好。另外。。。不支持 Chrome,用 Safari 吧。
2. 登陆后进入 Validations Wizard,验证你要添加 ssl 支持的域名。
3. 进入 Certificates Wizard,并选择 Web Servers SSL/TLS Certificates。
4. 创建一个 private key,连同密码一起保管好。(或者你也可以自己在服务器上用 openssl 创建,这里点skip就行了)
5. 选择一个域名,以及子域名。
6. 网站会给出证书,保存为 .csr 文件。
7. 使用 Tool Box 里面的 Decrypt Private Key 或者自己用 openssl 将第4步生成的 private key 解密,并将结果保存为 .key 文件。
8. 按照修改 nginx 默认的虚拟主机配置文件的范例修改,关键语句如下:
listen 443;
ssl on;
ssl_certificate /etc/nginx/certs/xxxxxx.crt;
ssl_certificate_key /etc/nginx/certs/xxxxxx.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
fast_cgi 部分也加入一行:
fastcgi_param HTTPS on;
另外在这里看到,中文版 Firefox 貌似不会信任这个证书,需要下载 Startcom 的根证书并且附在网站证书后面:
wget http://www.startssl.com/certs/ca.pem 感谢 @startssl 的亲自指正,这个是错误的,应该是:
wget http://www.startssl.com/certs/sub.class1.server.ca.pem
cat sub.class1.server.ca.pem >> xxxxx.crt
重新启动 nginx,即可顺利使用 https 打开虚拟主机了。

原文地址:http://goo.gl/JhWbD
