>>申请时注意,需要2次审核.回复邮件即可
control panel / sign-up 注意填写正确资料。收到邮件后复制验证码。然后可以生成一个证书,注意,startssl.com不是以用户名、密码来验证用户的,是用证书来验证用户 的。
所以生成证书后(chrome会导入证书),注意备份证书。丢失证书后只能重新注册。
登录后还要验证域名才能为该域名生成SSL证书,可以选择在whois里的邮箱、hostmaster@domain、 postmaster@domain或者webmaster@domain
然后就可以在Certificates wizard里就可以申请SSL证书了。
有效期一年。
在Toolbox
把你申请时的private key拿去Decrypt private key,然后把生成的key保存起来, server.key 。
然后在Retieve certificate里选择你申请的域名,就可以得到cer文件,保存起来server.crt ,
放到nginx的conf目录。
========================
nginx配置ssl
1 将拿到的 server.key 和 server.crt 放到合适的目录
2 合并根CA证书 (需要把startssl的根证书和sub class1的证书附上,因为是他们把证书颁发给你,firefox需要这张证书才认识你的证书)
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 >> server.crt
3 配置ngnix,只显示关键部分.请按照你的配置修改
PS: 浏览器默认访问网站的是80端口,所以访问ssl需要做一下跳转
server { listen 80; server_name google.com; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443; server_name google.com; index index.html index.htm index.php; root /data/htdocs/google.com; ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; }
4 重启即可
一般情况下nginx能正常重启,并且SSL证书可以正确配置,但是有时会出现下面的错误提示:
[emerg]: SSL_CTX_use_certificate_chain_file("/usr/local/nginx/conf/certs/server.crt") failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib) configuration file /usr/local/nginx/conf/vhost/xxx.conf test failed
这个的意思就是server.crt读取到意外错误行,这是因为之前我们合成证书导致的,使用vi或者nano命令打开并编辑server.crt,找到了问题所在:
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
可以看到原先占用一行的标记证书的分隔符,现在连到一起了,我们需要用换行将他们分开,注意问题左右的短横线最好一样多:
-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
保存这个crt文件,再次重启nginx,SSL启用成功!
此处评论已关闭