Nginx上部署StartSSL的方法

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

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

1. 在第一个location之前加上下面一段,xxx是StartSSL的证书文件名:

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;

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

3. 从StartSSL下载根证书,并追加到xxx.crt文件中:

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

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

Tags:

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。