十一没出门,在家没事干,于是想着干脆给自己的VPS配个SSL吧。 之前咱也用过SiteGround的SSL,不过当时人家是直接在cPanel直接给我装好了,搞得我白申请了。 先说说这个StartSSL吧,跟VeriSign一样,StartSSL(StartCom公司)也是一家CA机构,它的根证书很久之前就被一些具有开源背景的浏览器支持。现在也支持微软了。嗯,据说现在唯一不支持的就是Opera浏览器。不过Opera浏览器我就读大学的时候见一个爱折腾的同学玩过,其他很少见别人用这个。我只是在Android手机上装了这个公司的代理上网版本的APK。 首先要去这个网站注册,这个公司注册不是用用户名密码登陆的,而是用证书验证的。他的注册也很简单,输入你的注册信息,然后验证邮箱,再安装证书,你重装了系统要导入证书才能再次登录,否则也只有重新注册了。不过这个证书的期限也是一年,申请好的SSL证书也是一年。因为我是去年三四月份注册过,但是现在已经没用了。 首先请使用火狐(Foxfire)浏览器申请,因为我不确定Chrome、IE是否能够成功。(像有些网站比如000host等就需要用火狐)。 打开网站以后找到Sign-up按钮,果断按下去,然后出来输入你的个人资料的表单,进行提交。我这里把所有的注册过程很详细的每一布截图了。

所有的资料都最好使用正确的。因为注册SSL是一件很严肃的事情。还有就是如果你的IP地址是在大陆,你输入香港也是会被拒绝的。而且你的地址也是也是要详细的。我注册资料习惯了自动表单,结果地址不详细就被拒了。 按照表单写完以后点击Continue按钮。然后你填写的邮箱会收到一个验证码。 把验证码输入到你的浏览器Code的框里,然后继续。 我前面说了我的地址写的不详细,结果收到邮件通知我被拒了。 没办法,只能返回去重新注册,写的很详细。然后再受到验证邮箱的验证码,再输入到浏览器中。然后等待验证,他说了6个小时,其实一般一两分钟就会出结果。 这次通过了,收到了我通过验证的邮件,然后给了我一个URL,输入到浏览器中进行下一步安装证书。如果弹出的窗口依然还让你输入Code,那则输入邮件下面链接的Code。 点击Continue,接下来你的浏览器开始安装私钥,相当于建立用户名密码。 然后密钥安装成功以后提示你开始安装证书。 证书安装完毕以后会祝贺你一下,呵呵。点击完成(我的截图够详细吧?)。 然后他又会给你发邮件说你安装好啦,可以使用了,瞧,多么贴心。 接下来就是要在你的VPS中设置了。因为一般LNMP包里面都直接装了SSL支持,所以我们直接运行就可以了。输入

1
openssl req -new -newkey rsa:2048 -nodes -out nicky1605.csr -keyout nicky1605.key    #nicky1605换成自己名字,使用RSA 256位加密

然后安装提示输入就可以了。要跟你申请StartSSL的地址一样。 其中上面的截图最后一项我没要截上去,也是直接回车就可以了。 然后会在你运行的目录下生成你命令中要求的.key和.csr文件,例如从上面截图看到我是在root目录下运行的,所以就会在这个目录下生存nicky1605.csr 和 nicky1605.key文件,其中运行一下

cat nicky1605.csr

屏幕上会显示很长的一串字符串,先复制下来我们一会要用。 这时候你的StartSSL网站应该都完全注册好了,下面我先要验证我们的域名。 在控制面板中Validations Wizard的选项卡中选择Domain Name Validation(这一步我没截图),然后输入你的域名。(这个验证期30内有效) 接下来他会提示让你选择以下几个邮箱中的任意一个来发送验证码,其中我选择的邮箱是他根据Whois查到的管理邮箱。如果你不想使用管理员邮箱你可以建立一个他提示的邮箱。 然后把收到的验证码再输入到Code框中,域名验证完成。   接下来申请域名SSL证书。点击Certificates Wizard ,选择下拉菜单中的Web Server 然后进入下一步他会问你验证方式神马的,我们都已经在VPS上设置过了,所以这里直接跳过。 然后在下面的网页中输入刚才nicky1605.csr中拷贝出来的一串字符。 然后提示你证书信息收集好了,点击继续。 系统提示你必须要选择一个二级域名来进行,我就是用我申请的那个,大家如果申请根域名就输入www好了。     最后差一步就成功了!果断的点击继续。 提示成功,返回一个让你等待的网页。等邮件好了。 趁这个时候大家可以从火狐浏览器导出证书备份。打开设置的安全选项卡。切到证书管理器上去。然后选择备份。 等了大概不到10分钟吧,Start就发给我邮件说证书好了(验证域名的邮箱)。 打开StartSSL控制面板,选择导出证书。看到了么,这里我们是Class 1的免费用户,时间就1年。 这次抠门的不给发邮件把证书发给我们了。让你直接拷贝出来。保存成.crt格式。  到这一步StartSSL的工作就结束了,现在回到你的VPS中。把证书全部放到一个目录里面。我是放到了Nginx的目录,编辑Nginx配置文件(LNMP的Nginx目录是在/usr/local/nginx,配置在这个文件夹的./conf文件夹下的nginx.conf文件,在Server中添加以下几行就可以了:

1
2
3
4
5
listen       443;
 ssl    on;
 ssl_certificate    /usr/local/nginx/conf/Startssl.crt;   #你从StartSSL下载证书放的路径
 ssl_certificate_key     /usr/local/nginx/conf/nicky1605.key;  #openssl生成key路径
 ssl_session_timeout 5m;

然后重启Nginx就可以了。

1
/usr/local/nginx/sbin/nginx -s reload

这时候你去访问的话就可以用HTTPS访问了,但是如果你有一些高危内容HTTP链接就会打个红叉,如果你的图片有HTTP链接就会有红色感叹号。 把这个都修改成功了以后Chrome就会是绿色的链接符号了。关于这个这篇文章介绍的比较详细。  不过Foxfire这个家伙不安分,非要按正神马证书发行链接。 需要在你StartSSL的证书中合并StartSSL根证书。

1
2
wget http://cert.startssl.com/certs/ca.pem  #免费用户可以不添加这行
wget http://cert.startssl.com/certs/sub.class1.server.ca.pem  #这个是给免费Class1用户准备的
cat ca.pem sub.class1.server.ca.pem >> Startssl.crt

然后再重启Nginx就可以了。如果嫌cat麻烦可以直接把pem文件的内容复制到Startssl.crt证书下方。


 最后可以看下证书的信息,估计是为了各个时区访问考虑,他有效期提前了一天。 

posted on 2014-10-22 10:45  mynetstudy  阅读(2621)  评论(0编辑  收藏  举报