一直在使用很多与支付相关的https网站,通过Secure Socket Layer(SSL)安全协议加密包含传输的关键信息,也了解到搜索引擎Google, 百度等近年都改为了https方式访问,而且对使用https的网站给予较高排名,但我们自己的网站一直没有采用https方式,因为觉得麻烦和不是很必要。
上周在了解微信小程序的时候,看到微信request接口对应的访问不能是http方式,只能是https方式,所以不得不了解这方面的情况,通过查阅一些资料,再一点一点测试,终于是实现了https方式访问,现在把一些要点记录下来。
使用https方式的一个最大拦路虎是SSL证书(SSL Certificates),一般都是需要收费的而且费用不低,但听说国外StartCom公司可以提供免费的SSL证书,于是就去探访了一番,他们提供这几种证书:
EV 扩展组织认证 StartSSL™ Extended Validation |
OV 组织认证 StartSSL™ Organization Validation |
IV 个人认证 StartSSL™ Identity Validation |
DV 域名认证(免费) StartSSL™ Free |
UNLIMITED - Class 4 EV SSL Certificate UNLIMITED - Class 3 OV SSL Certificate UNLIMITED - Class 3 Organization Client Certificate ONE - Class 3 Code Signing Certificate |
UNLIMITED - Class 3 OV SSL Certificate UNLIMITED - Class 3 Organization Client Certificate ONE - Class 3 Code Signing Certificate |
UNLIMITED - Class 2 IV SSL Certificate UNLIMITED - Class 2 Client Certificate ONE - Class 2 Code Signing Certificate |
UNLIMITED - Class 1 DV SSL Certificates (up to 10 domains per Certificate) UNLIMITED - Class 1 Email Validation (S/MIME Certificate) All certificates are valid for 3 years |
支持通配符 | 支持通配符 | 支持通配符 | 不支持通配符,每份证书最多支持10个域名 |
$ 199.90/Y Validation Fee |
$ 119.80/Y Validation Fee |
$ 59.90/Y Validation Fee |
$ 0.00 |
就先尝试免费的DV域名认证,这个申请过程有很多老手都写了很好的详细介绍文章,例如:
需要注意的是申请账号的时候会给一个email私匙,导入(Chrome)浏览器以便以后登录,需要保存好私匙p12文件,或者从浏览器导出包括私匙和证书的pfx文件,保存到电脑以外的云盘等地方。
登录后Validations Wizard来验证域名或者email,我们这里都是验证域名以便获得SSL证书,输入拥有的域名后,系统会给域名管理员发送邮件,在邮箱中收取邮件获得验证码,输入系统后就验证了域名的所有权。多个域名可以多次这样操作。但验证完成后后台提示Validation Success. You have successfully authenticated domain"example.com". You will be able to use this verification for the next 90 days, after which it expires and must be re-validated. 也就是说90天后还需要再次验证域名所有权。
再使用Certificates Wizard来获取证书,选择Free方式,输入要使用的域名(可以是二级域名),使用
startcomtool.exe工具来生成csr(并保存csr和key文件)或者服务器上运行openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr来生成csr和key文件,再生成证书。
再在Tool Box中Retrieve获取证书文件,压缩文件包含了Apache等几种,获取需要的放置到服务器上,再修改httpd.conf, httpd-ssl.conf,重启httpd就可以了(具体还有一点复杂,请在搜索引擎搜索相关介绍文章)。
例如我现在这个博客,既可以用http访问,也可以用https来访问:
我这才是刚刚设置,还有更多还需要慢慢摸索,另外一定要保存好一些文件、配置等,避免丢失后无法取回,在一段时间(例如几个月、一年、几年)后还需要续签、重新认证、刷新证书等。在startssl中可以免费设置10个域名,但也不要胡乱设置,如果要取消还是需要付费的!
2016年11月28日补充:又申请到了免费的个人认证(需要提交身份证、手持身份证照片、银行小额汇款验证),可以获得IV,这样就支持通配符域名(泛域名解析)的站点了。对于同一个域名或者子域名,可以生成多个证书,只要在apache设置中指向当前需要使用的证书就可以。
电话咨询后得知目前IV、OV、EV也都是免费的(下一年可能就收费了),于是为公司办理了组织认证,需要上传营业执照、签字盖章的确认书、银行小额汇款验证,也只要2-3天就可以办妥了。StartCom的每个账号只能申请个人认证或者组织认证二选一,所以又注册了一个账号来申请组织认证。
在生成通配符域名证书的时候有一点需要注意,*.example.com只代表abc.example.com而不代表123.abc.example.com,所以在需要的时候还要把*.abc.example.com这样的通配符域名也写入才行。
2017年11月30日补充:收到startcom的邮件,我们去年做的认证到期了,不过我们去年早就开始考虑StartCom以外更多的SSL证书提供商,全面改为Let's Encrypt的免费SSL证书了,对我们没有什么影响。去看https://www.startssl.com的域名都打不开,因为其本身的SSL证书被吊销了,但http://www.startssl.com会跳转到https://www.startcomca.com,去看到一篇新闻《Termination of StartCom business》,这个公司决定终止业务开展了。
评论