服务器上部署https,免费又好用的https证书

随着苹果发布声明接口https化,再加上微信小程序的接口必须使用https,可是服务器上部署https就需要一笔小小的费用,在天朝掏钱的事是没人干的,都在找寻免费的服务,虽然挺折腾,但是难不住天朝的程序员。特别是为了测试微信小程序,实在是没必要购买ssl证书,只好寻求免费的服务。

StartSSL(官网:https://www.startssl.com/),提供免费的ssl证书申请,16年的时候按照网上的教程申请过一个免费的证书,用着还不错,17年的时候想为相同域名下的另一个二级域名申请证书的时候,提示系统正在升级,跳转到另一个主站,申请之后一直是Pending Issued(待签发)状态,也没有原因提醒,一直没搞懂神马情况,只好另寻办法。

Let’s Encrypt,免费的,开放的证书签发服务,之前也看到过,虽然只有90天的有效期,但是如果要安装 Let’s Encrypt 凭证,必须要熟悉 Unix 指令,才能够在远端主机下指令来取得凭证(不是很难,却需要一些时间)。自从发现了有开发者推出一款名为 SSL For Free 线上工具,让你从网站上取得免费 SSL 凭证,当然这是连接 Let’s Encrypt 的凭证签发功能,不过无须自己到主机输入安装指令,即可透过网页介面来取得凭证的相关档案(包括私密金钥、CA bundle 和凭证 crt 档),再从控制台 SSL 功能将凭证安装进去就能使用。

网站名称:SSL For Free
网站链接:https://www.sslforfree.com/

1,进入网站之后,直接在上方填入你要申请 Let’s Encrypt 凭证的网域名称,可以用空白来分隔不同的网址,例如「subdomain.domain.com domain.com other.com」,填入后点选右边的「Create Free SSL Certificate」继续。
2,为了确定这个网域名称使你所有,会有三种验证方式,如果你的网站本身开启 FTP 功能的话,可使用「Automatic FTP Verification」来输入相关资讯完成验证;还有一种就是DNS验证;我使用的是手动的验证方式,必须自己下载档案,依照说明上传到主机。

3,点选后,点选下方的「Manually Verify Domain」继续。
4,点选网站上提供的档案下载链接,依照说明建立两层资料夹,将档案放进去即可。记得结束前先通过以下两个链接来看看能否正常读取档案,如果不行,代表你的路径可能错误,重新检查一次吧!总之要让两个链接都能正常开启。由于使用的是windows主机,并且使用的IIS7,操作稍微麻烦一些,如果没有站点,需要先建一个站点,验证支持http或者https,在站点根目录创建.well-known文件夹,由于是特殊文件夹,直接创建肯定是创建不上,需要在文件名后再跟一个小圆点,既创建一个.well-known.【再windows下看到就是.well-known】,在它下面再创建一个acme-challenge文件夹,将下载下来的文件放到里面。由于下载下来的文件是无后缀的文件,需要在IIS上设置一下,支持无后缀的文件访问。打开IIS7,点击相应的站点,在功能视图,点击MIME类型,添加一个文件扩展为.*,mimeType类型为text/plain,这样就可以文本的方式访问无后缀的文件了。确保文件可以访问后
5,再点选最下方的「Download SSL Certificate」,通过验证后,SSL For Free 就会开始为你产生 SSL 凭证。
6,当凭证产生后,你就能在最终的结果页面看到这些资讯。不过在此之前,我会建议你先找到如下面截图标示出来的「Get Notified of Expiration」栏位,设定一组 Email 和密码,即可在凭证过期前取得通知,以免错过延长(renew)时间。从网页最下方点选「Download All SSL Certificate Files」就能打包这些档案,解压缩后可以取得一个私密金钥(Privacy Key)、CA_bundle.crt 和 certificate.crt 三个档案,返回你的主机控制台,即可将凭证安装进去囉!
7,由于是windows的IIS,直接下载下来的文件还无法部署到IIS7上,需要使用openssl将下载下来的文件转换成pfx的文件才可以导入到IIS的证书里.openssl使用的是Openssl-windows-0.9.8k命令行工具,在cmd里执行:
openssl pkcs12 -export -out domin.pfx -inkey private.key -in certificate.crt 会提示输入导入时的密码,导入证书的时候有用。生成pfx后可以导入到IIS里。参考网址:http://stackoverflow.com/questions/6307886/how-to-create-pfx-file-from-certificate-and-private-key/17284371#17284371
支持https已经设置完毕。

参考网站:http://www.chinaz.com/web/2016/0216/504896.shtml

注:windows服务器上默认是不支持TLS 1.2,要想服务器支持TLS 1.2,需要修改一下注册表,【例如苹果就要求必须为TLS 1.2】,禁用SSL3.0,启用TLS1.2如下:
注册表路径:HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
右键->新建->项->新建TLS 1.1,TLS 1.2
TLS 1.1和TLS 1.2 右键->新建->项->新建Server, Client
在新建的Server和Client中都新建如下的项(DWORD 32位值), 总共4个
DisabledByDefault [Value = 0]
Enabled [Value = 1]

禁用老SSL配置
SSL 2.0,SSL 3.0项里的Client,Server项:
DisabledByDefault [Value = 0]
Enabled [Value = 0]
需要重启服务器

测试服务器ssl信息的网站:https://www.ssllabs.com/ssltest/
参考网站:http://www.chinaz.com/web/2016/0216/504896.shtml

分享到:
此条目发表在 开源, 服务器 分类目录,贴了 , 标签。将固定链接加入收藏夹。

评论功能已关闭。