Nginx上部署StartSSL的方法

去年写过一篇“VPS上安装Lnmp和配置SSL”,刚开始时使用LNMP,后来觉得Nginx配置不兼容Apache就又换成了LAMP,主要还是VPS的内存比较足。这会换成Xen后内存只有256M,只能重回LNMP了。

首先是用vhost.sh来给SSL的子域添加一个目录和对应的权限,然后编辑vhost目录下新建的conf文件。

1. 在第一个location之前加上下面一段,xxx是StartSSL的证书文件名:
[bash]ssl on;
ssl_certificate /usr/local/nginx/conf/xxx.crt;
ssl_certificate_key /usr/local/nginx/conf/xxx.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;[/bash]

2. 在各php相关的location下增加“fastcgi_param   HTTPS on;”一行。(PS. 实测时不加这一行也没问题)

3. 从StartSSL下载根证书,并追加到xxx.crt文件中:
[bash]wget http://www.startssl.com/certs/sub.class1.server.ca.pem
cp xxx.crt xxx.crt.old
cat sub.class1.server.ca.pem >> xxx.crt[/bash]

这里需要注意的一点是,xxx.crt证书保存时必须以Linux换行格式保存,并且最后保留一空行,这样通过cat追加ca.pem文件时根证书才会另起一行,否则会出错。

Tags:

Leave a Reply