StartSSL是一个免费颁发SSL证书的机构,被多数有 Linux 背景的软件支持(以Mozilla的Firefox和Thunderbird为首).以前IE是没有StartSSL的根证书的,以至于一段时间IE都会将使用StartSSL证书的网站列为不受信任的网站.
但是现在情况有所改观了,今年9月份,StartCom公司出现在Windows根证书认证程序厂商更新当中,因此StartSSL证书在IE平台上已经可以正常使用的.另外Chrome,苹果Safari浏览器都可以正常识别StartSSL颁发的证书.但是Opera浏览器仍然不能支持.
为 nginx虚拟主机配置startssl证书
前提条件:独立IP.一台Linux机器.Startssl账户申请这里就不说明了.申请很简单,验证域名所有权也很简单.这里就做证书的配置.
我们先为域名生成证书请求文件和密钥.需要生成2048位加密的证书请求.以icodex.org为例,执行命令:
openssl req -new -newkey rsa:2048 -nodes -out icodex.csr -keyout icodex.key
执行之后在/etc/nginx/certs目录中就有icodex.csr. 执行cat icodex.csr查看里面的内容并复制:
然后将复制的粘贴到startssl后 台,这里每一步都进行截图:
最后一步注意要先将这段代码保存为icodex.crt 放在与icodex.csr icodex.key同个目录.
然后配置nginx,直接丢配置上来.
server {
listen 443;
listen 80;
server_name os.icodex.org;
root /home/icodex/os/public_html;
index index.html index.htm index.php;
access_log /var/log/nginx/os.icodex.org-access.log access;ssl on;
ssl_certificate /etc/nginx/certs/icodex.crt;
ssl_certificate_key /etc/nginx/certs/icodex.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;location ~* ^.+\.(js|css|jpg|jpeg|gif|png|ico|bmp|swf)$ {
expires 7d;
}# pass the PHP scripts to FastCGI server
#
location ~ .*\.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param HTTPS on;
}
}
最后重启nginx.完毕...
另外,昨日与Showfom(此君 域名我妒忌)聊天的时候谈到火狐中文版验证ssl时提示ssl不受信任的问题,这应该是根证书的问题,后来测试,果然解决了.我们知道在apache有 SSLCertificateChainFile用来指定CA根证书位置,虽然nginx没有这个字段来指定,但是在nginx和lighttpd中是可 以将CA根证书与我们自己的证书合并使用的(声明来源:Sudone).步骤如下:
我们先到startssl下载 CA根证书,地址:http://cert.startssl.com/certs /,然后进入我们的证书保存位置,注意,操作前记得备份原证书文件.
cd /etc/nginx/certs/
cp icodex.crt icodex.crt.bak
wget http://www.startssl.com/certs/ca.pem
cat ca.pem >> icodex.crt
最后重启nginx即可.










5 comments
Add comment