十一没出门,在家没事干,于是想着干脆给自己的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支持,所以我们直接运行就可以了。输入
- 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中添加以下几行就可以了:
- 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就可以了。
- /usr/local/nginx/sbin/nginx -s reload
这时候你去访问的话就可以用HTTPS访问了,但是如果你有一些高危内容HTTP链接就会打个红叉,如果你的图片有HTTP链接就会有红色感叹号。 把这个都修改成功了以后Chrome就会是绿色的链接符号了。关于这个这篇文章介绍的比较详细。
不过Foxfire这个家伙不安分,非要按正神马证书发行链接。
需要在你StartSSL的证书中合并StartSSL根证书。
- wget #免费用户可以不添加这行
- wget #这个是给免费Class1用户准备的
- cat ca.pem sub.class1.server.ca.pem >> Startssl.crt
然后再重启Nginx就可以了。如果嫌cat麻烦可以直接把pem文件的内容复制到Startssl.crt证书下方。
最后可以看下证书的信息,估计是为了各个时区访问考虑,他有效期提前了一天。
本文作者为Nicky,转载请注明。
你好,小弟照着这篇博文 <a href="//blog.ghostflying.com/nginx-wordpress-e8bf81e7a7bbe588b0ssle5b08fe8aeb0/”" title="Nginx + WordPress 迁移到SSL小记" rel="nofollow"> 和你的这篇文章配置后,包括验证到合并证书。
为什么用https访问后,网址栏确实是ssl验证通过,显示绿色标记。但却出现403错误了。
主要配置文件如下:
server
{
listen 80;
index index.html index.htm index.php;
root /home/wwwroot;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/ssl-unified.crt;
ssl_certificate_key /usr/local/nginx/ssl.key;
ssl_session_timeout 5m;
}
server {
listen 80;
server_name mydomain;
return 301 https://mydomain$request_uri;
}
是配置问题还是那篇博文哪边有疏漏呢?
@Dennis C.K Deng现在可以了?这两天我有点忙都没怎么看博客
我按照这个文章配置了一下,但是用手机访问仍然是证书无效. 电脑版的Chrome可以
@zhouitpro你绑定了根证书了吗?这个是免费SSL,可能有些浏览器不支持
人家不让商用,郁闷
@米饭买一个就是了,一年10美金也不贵啊
請問出現
Domain Exists
A certificate with domain www.arefly.com already exists at Class 1 level.
Please try it again and choose a different (sub) domain, upgrade your validation status to a higher level or request revocation of the existing certificate at the Tool Box.
怎麼辦?我輸入的二級域名是www
@超級efly这个域名是存在的,我不知道你是从哪买的域名啊
支持一下,似乎很麻煩。。。
@超級efly不麻烦啊,哪里麻烦来着,如果你自己购买证书只要在Nginx的配置文件中加载几行信息重启就可以了啊
嗯嗯呃呃呃呃呃呃呃,学习了啊,呃呃呃呃嗯嗯呃呃
<a href="http://www.baidu.com" title="百度一下,你就知道" rel="nofollow">