最便宜的付费Https第三方证书PositiveSSL安装小记

Written by

in

Https 作为加密的超文本传输协议一直广泛应用在商务尤其是购物、金融网站上(特别是网上银行),随着网络安全的需求,诸多国外著名的网站服务商为保护用户上网隐私防止信息泄露也开始部署Https加密,例如Google已经强制要求用户使用Https访问其搜索服务。

然而国内这方面的意识还很淡薄,我发现许多金融企业(尤其是保险公司网销平台)居然都没有部署Https,客户账户资料和银行卡信息以明文形式在网上传输,造成极大的信息安全隐患。我的博客虽然没有这个迫切的需要,不过最为一个Geek,技术上的尝试是有必要的,当然装逼也占有很大的成份,

不过给博客配置Https确实有个好处就是可以绕过GFW的屏蔽,著名博客可能吧就曾经采用过这个办法。

既然要装逼,自签名的证书自然是被排除的,毕竟铁道部根证书的丑事实在太丢人,浏览器跳出个安全提示更是大大降低用户的浏览体验,怎么着也要弄一个认证的第三方CA签发的证书,然而证书市场一向是奇货可居(其实我认为其中没多少技术含量),中农工建还有支付宝这等财阀使用的如 Versign 证书我是想也不敢想的,就连 Godaddy 的S tandard SSL 服务都要50$一年(坑爹么?),于是我看是寻找一些廉价的 Https 解决方案。

StartSSL是一家以色列公司,应该算是当今互联网为数不多的几个提供免费证书的服务商,而且各大浏览器的支持度很高, 整个证书申请过程也很人性,甚至都不需要在服务器上生成csr文件, 但证书的安装说明极为简陋,经过数次调试无果,最后导致Apache服务器崩溃。后来发现 StartSSL 专门提供一项帮助客户安装证书的服务,收费20$,原来如此….这奸商可恨。  配置Https的事情就暂且搁下了,数月之后浏览网页时发现了域名服务商 namecheap 提供每年1.99$的PositiveSSL证书服务,供应商为 Comodo ,这应该是目前能找到的最便宜的第三方证书服务了,(以前namecheap还提供过买域名送SSL的优惠,泪奔),不过前提是需要购买或转移域名到 namecheap 。

这个简单,  我从 Name 上挑了一个域名转到Namecheap,经过了五天的耐心等待,收到了提示激活SSL 的邮件,立即登陆VPS开始配置: 安装环境: 主机:Linode VPS;操作系统:Ubuntu ;服务器:Apache

步骤一

我们需要在VPS里通过openssl创建证书申请文件CSR,(certificate request),这个文件包括证书信息和私钥,首先开启Apache2 的SSL模块(OpenSSL在安装Apache2时已经默认安装,现在只需要开启):
sudo a2enmod ssl

  将default-ssl虚拟主机激活:

sudo a2ensite default-ssl

  接下来,我们按照帮助文档的提示,输入命令生成私钥Key文件以及证书申请文件CSR。

openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr
openssl req -newkey:表示使用OpenSSL套件生成证书请求;-nodes:“No DES”的缩写,表示不用DES加密私钥,否则每次启动Apache就要输入密码; rsa:2048:生成一个2048位位RSA加密的私钥; -keyout:私钥生成文件。

这条命令会生成两个文件,“myserver.key”包含着私钥,用来生成CSR(Certificate Signing Request)文件,请妥善保存好这个文件不要泄露给任何人。接下来我们需要将个人信息录入到CSR文件中:

Country Name (2 letter code) [AU]: CN
State or Province Name (full name) [Some-State]: BJ
Locality Name (eg, city) []: BJ
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany Ltd
Organizational Unit Name (eg, section) []: IT
Common Name (eg, YOUR name) []: mysubdomain.mydomain.com
Email Address []:
   根据提示要求填写国家、城市、公司、部门信息(随意填写、邮箱可留作空白);“Common Name”选项请使用
网页服务器的主机名,如果想挂靠域名,请输入域名完整信息,完毕后有出现下面两个选项,留空即可;
A challenge password []: <br clear="none" />An optional company name []:

上述步骤后,私钥文件Key和证书申请文件CSR就在用户目录下成功生成了,通过文本编辑器打开,将内容复制粘贴到Namecheap网站上申请页面的空白处,点击确认,完成了证书申请的操作。

步骤二

完成第一步后Namecheap会给你域名Whois信息上的邮箱发送一封确认邮件,输入确认码后等待PositiveSSL给自己的邮箱发送证书邮件。

收到邮件后打开附件,可以看到如下三个文件:

  • Root CA Certificate – AddTrustExternalCARoot.crt      #根证书文件
  • Intermediate CA Certificate – PositiveSSLCA2.crt        #服务器证书文件
  • Your PositiveSSL Certificate – yourDomainName.crt   #个人证书文件

        服务器证书用来对个人证书签名,根证书用来对服务器证书签名,从而形成一条完整的证书链,下面我们需要在VPS上建立一个目录保存上述证书和私钥文件:

sudo mkdir /etc/ssl

       下面我们要做的是将这三个证书文件以及上一步生成的“myserver.key”私钥文件一起保存到这个目录下:

        接着我们开始编辑default-SSL文件,加入如下代码:

nano etc /etc/apache2/available-sited/default-ssl

编辑SSL-default配置文件

ServerName yourDominName
SSLEngine on
SSLCertificateKeyFile /etc/ssl/server.key
SSLCertificateFile /etc/ssl/yourDomainName.crt
SSLCertificateChainFile /etc/ssl/PostiveSSLCA2.crt

 根证书(Root CA Certificate)一般浏览器都自带不用另行设置,修改完毕之后重启Apache服务器。

service apache2 restart

好了,本博客已经可以用https://www.inkrope.com访问了,由于其他搜索引擎尚不具备对https内容的抓取,因此我的博客还没有做https的强制跳转,不过对个人信息隐私看重的朋友可以通过https链接访问了。E 未命名