概述

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登录证书过程

  1. 打开网站以后找到Sign-up按钮,果断按下去,然后出来输入你的个人资料的表单,进行提交。

  2. 所有的资料都最好使用正确的。因为注册SSL是一件很严肃的事情。还有就是如果你的IP地址是在大陆,你输入香港也是会被拒绝的。而且你的地址也是也是要详细的。 按照表单写完以后点击Continue按钮。然后你填写的邮箱会收到一个验证码。

  3. 把验证码输入到你的浏览器Code的框里,然后继续。

  4. 然后再受到验证邮箱的验证码,再输入到浏览器中。然后等待验证,他说了6个小时,其实一般一两分钟就会出结果。

  5. 通过验证的邮件的URL,输入到浏览器中进行下一步安装证书。如果弹出的窗口依然还让你输入Code,那则输入邮件下面链接的Code。 点击Continue,接下来你的浏览器开始安装私钥,相当于建立用户名密码。

  6. 然后密钥安装成功以后提示你开始安装证书。

  7. 证书安装完毕以后会祝贺你。点击完成。

  8. 然后会给你发邮件说你安装好啦,可以使用了。

服务器生成证书

服务器需要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

你可能感兴趣的文章

marcoe · 2015年12月15日

startssl英文看起来吃力,要是搞个支持中文的免费SSL就好了。

+1 回复

载入中...
renner renner

40 声望

发布于专栏

rener

一个半吊子程序员的点滴记录

1 人关注