概述
ssl基础
服务器操作系统:aliyun ubuntu 12.04
WEB服务器:nginx 1.4.x
免费ssl认证服务:startssl.
SSL/TLS协议运行机制的概述
百度百科解释:
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
详情参见阮一峰老师的网络日志
《SSL/TLS协议运行机制的概述》
StartSSL 介绍
StartSSL是StartCom公司旗下的SSL证书,貌似是现在唯一一家提供免费SSL证书服务并且被主流浏览器支持的免费SSL,包括Chrome、Firefox、IE等浏览器都可以正常识别StartSSL,任何个人都可以从StartSSL中申请到免费一年的SSL证书。
StartSSL申请虽然要审核,但是一般十几分钟就会回复邮件了。而且经过部落的几次申请测试发现,StartSSL申请审核并不严格,如果遇到问题,你只要回复一封邮件过去回答邮件当中所提的问题,通过率几乎是100%。使用StartSSL前必须先在自己的电脑上安装StartSSL证书,这个证书就是你用来登录和管理StartSSL申请到的SSL唯一凭证,没有了这个凭证就无法对已经申请的SSL进行管理和续期了,只能重新申请一个了,所以需要特别保存好。
申请免费StartSSL登录证书过程
打开网站以后找到Sign-up按钮,果断按下去,然后出来输入你的个人资料的表单,进行提交。
所有的资料都最好使用正确的。因为注册SSL是一件很严肃的事情。还有就是如果你的IP地址是在大陆,你输入香港也是会被拒绝的。而且你的地址也是也是要详细的。 按照表单写完以后点击Continue按钮。然后你填写的邮箱会收到一个验证码。
把验证码输入到你的浏览器Code的框里,然后继续。
然后再受到验证邮箱的验证码,再输入到浏览器中。然后等待验证,他说了6个小时,其实一般一两分钟就会出结果。
通过验证的邮件的URL,输入到浏览器中进行下一步安装证书。如果弹出的窗口依然还让你输入Code,那则输入邮件下面链接的Code。 点击Continue,接下来你的浏览器开始安装私钥,相当于建立用户名密码。
然后密钥安装成功以后提示你开始安装证书。
证书安装完毕以后会祝贺你。点击完成。
然后会给你发邮件说你安装好啦,可以使用了。
服务器生成证书
服务器需要openssl 支持,并安装了nginx.
root@iZ238l3t:~# cd /etc/nginx/
root@iZ238l3t:~# mkdir ssl
root@iZ238l3t:~# cd ssl
root@iZ238l3t:~# openssl genrsa -out server.key 2048
root@iZ238l3t:~# openssl req -new -key server.key -out server.csr
查看/etc/nginx/ssl 目录下将会生成两个文件(server.key和server.csr)
安装提示输入按在startssl中填写的一样就可以了。
先复制server.csr文件夹中的内容,会在接下来过程中需要。
Startssl 申请免费一年证书
验证域名
在控制面板中Validations Wizard的选项卡中选择Domain Name Validation,然后输入你的域名。(这个验证期30内有效)
接下来他会提示让你选择以下几个邮箱中的任意一个来发送验证码,其中我选择的邮箱是他根据Whois查到的管理邮箱。如果你不想使用管理员邮箱你可以建立一个他提示的邮箱。
然后把收到的验证码再输入到Code框中,域名验证完成。
申请免费一年域名证书
接下来申请域名SSL证书。点击Certificates Wizard ,选择下拉菜单中的Web Server
然后进入下一步他会问你验证方式神马的,我们都已经在VPS上设置过了,所以这里直接跳过。
然后在下面的网页中输入刚才server.csr中拷贝出来的一串字符。
然后提示你证书信息收集好了,点击继续。
系统提示你必须要选择一个二级域名来进行,大家如果申请根域名就输入www好了。
提示成功,返回一个让你等待的网页。接下来就是等待官方进行审核验证,验证后会发送成功或失败的邮件到你的填写的邮箱中。
导出证书
打开StartSSL控制面板,选择导出证书。
将代码拷贝出来。保存成.crt格式。
nginx配置ssl访问
# HTTPS server
#
server {
listen 443 ssl;
server_name pass.test.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !EXPORT !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
root /mnt/web/ssl;
index index.html index.htm;
}
}
重启nginx
service nginx restart
访问
访问域名显示工作正常。
参考:
How to Install Nginx and a StartSSL Certificate on Debian 7 (Wheezy)
https://www.linode.com/docs/websites/nginx/how-to-install-nginx-and-a-startssl-certificate-on-debian-7-wheezy
Nginx上配置Startssl 免费SSL
http://blog.nicky1605.com/the-free-ssl-configuration-startssl-on-nginx.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。