阅读 1917

如何申请阿里云的免费 https 证书

前言

2017 年可以说是 https 快速发展的一年。大量的网站都从 http 协议迁移到了 https 协议。https 是构建在 SSL/TLS 基础上的 http协议,相对 http 来说,https 主要提供了 http 传输过程中的数据安全机制。

在原来的 http 协议中,传输的内容都是明文传递的。在传输的任何一个网络节点上,路由器、交换机、运营商核心交换机等,都能够很简单的嗅探到传输的内容。不仅用户的隐私安全完全无法保证,更严重的是还非常容易被人在这些节点上进行攻击和劫持,在返回的 http 内容中篡改返回结果。例如在返回的结果中插入广告,在返回的内容中恶意代码等等。

要让自己的网站和 http 服务升级到 https ,你需要为自己的网站申请一张 https 证书。公网可信的 https 证书由 CA 厂商签发。

证书的类型根据认证的级别可以分为以下三种

  • 域名认证(Domain Validation):最低级别认证,可以确认申请人拥有这个域名。对于这种证书,浏览器会在地址栏显示一把锁。
  • 公司认证(Company Validation):确认域名所有人是哪一家公司,证书里面会包含公司信息。
  • 扩展认证(Extended Validation):最高级别的认证,浏览器地址栏会显示公司名。

根据覆盖的范围又可以分为以下三种

  • 单域名证书:只能用于单一域名,foo.com 的证书不能用于www.foo.com
  • 通配符证书:可以用于某个域名及其所有一级子域名,比如*.foo.com的证书可以用于foo.com,也可以用于www.foo.com
  • 多域名证书:可以用于多个域名,比如foo.com和bar.com

https 证书也不是免费的。认证级别越高,覆盖范围越广的 https 证书也就越贵。

幸好为了推广 https 证书,国内的云服务厂商大多都提供了免费的 https 证书签发服务。当然是认证级别最低,覆盖范围最小的那种了。

本文主要描述如何通过阿里云申请和配置一个 https 证书

阿里云申请 https 证书

首先需要有一个阿里云账号。然后登陆到阿里云的网站,在控制台中找到 CA证书服务。如下图所示:

https 证书申请入口

证书选择

进入 CA 证书服务页面后,点击“购买证书”按钮,进入购买页面。选择如下的的免费证书

选择免费的 SSL 证书

点击“立即购买”并且支付后,会在 CA 证书服务页面生成一个新订单。然后点击“补全”按钮补充信息。

证书订单

指定域名

首先要填写为哪个域名申请的证书。这里必须指定一个具体的二级域名,不支持通配符。

证书域名

####填写个人信息 这里填写联系人信息和域名验证类型。我这里选择的是 DSN 验证类型。

联系人信息

域名验证

补全这些信息后,就等待系统自动审核通过。点击订单“详情按钮”可以看到证书验证需要在申请证书域名的解析中增加一条图中的 TXT 类型的解析记录来进行域名的验证。

image.png

注意一下,如果你申请证书的域名在阿里云的这个账户下,那么在“填写个人信息”步骤中,勾选复选框“证书绑定的域名在【阿里云的云解析】产品中,授权系统自动添加一条记录以完成域名授权验证”,系统将会自动增加如下的域名解析记录。否则需要手工增加这条域名解析记录

域名解析

等待一段时间后,订单状态会显示为签发成功,表示证书已经签发成功了。

签发成功

证书配置

证书签发成功后,需要在 http web 服务器中配置证书。在上图中点击“下载” 按钮后,阿里云提供了下面几种 web服务器的配置样例

证书下载和配置样例

其中 nginx 配置的样例如下所示

server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/214504606840473.pem;
    ssl_certificate_key  cert/214504606840473.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}
复制代码

访问样例

在 web 服务器上配置成功后,访问该域名的网页,会显示出一个绿色的锁的标志,这标识你的网站已经在 https 证书的保护下了。

https 网页样例

这个是通过 chrome 访问的样子。其他浏览器可能不太一样。

原文发表在简书中,原始链接

文章分类
前端