HTTPS

SSL证书 签发 和 应用

- SSL证书服务(Alibaba Cloud SSL Certificates Service)是由阿里云联合中国及中国以外地域多家数字证书颁发机构( CA,Certificate Authority),在阿里云平台上直接提供的数字证书申请和部署服务。SSL证书服务帮助您以最小的成本将服务从HTTP转换成HTTPS,实现网站或移动应用的身份验证和数据加密传输。

# 阿里云SSL证书和HTTPS的关系
- 可以通过阿里云SSL证书服务购买SSL证书,并向CA中心提交证书申请,直到证书成功签发;您将已签发的证书安装到Web服务器后,则Web服务将会通过HTTPS加密协议来传输数据。

- HTTPS加密传输协议可激活客户端浏览器到网站服务器之间的SSL加密通道(SSL协议),从而实现高强度双向加密传输,防止传输数据被泄露或篡改。

# 为什么网站需要HTTPS
- 防劫持、防篡改、防监听:使用SSL证书实现网站的HTTPS化,可以对网站用户与网站间的交互访问全链路数据进行加密,从而实现传输数据的防劫持、防篡改、防监听。

- 提升网站的搜索排名:使用SSL证书实现网站的HTTPS化后,网站在搜索引擎显示结果中的排名将会更高,有利于提升网站的搜索排名和站点的可信度。

- 提升网站的访问流量:使用SSL证书实现网站的HTTPS化,可以强化网站在用户侧的身份可信程度,使网站用户能更安心地访问网站,提升网站的访问流量。

证书购买

# 1. 支持选购的证书类型
- 阿里云SSL证书服务支持购买DV证书、OV证书和EV证书三种类型的证书。不同类型证书的安全性和适用的网站类型不同,具体如下所示。

Aliyun SSL 证书签发&安装-LMLPHP

证书申请

- 购买SSL证书订单实例后,您还必须通过SSL证书服务向CA中心提交证书申请。只有当CA中心审核通过您的证书申请后,才会为您签发证书,然后您才可以将已签发的证书安装到服务器,实现网站HTTPS。

- 参考文档:https://help.aliyun.com/document_detail/98574.htm?spm=a2c4g.11186623.2.10.11743147W9oWm9#concept-wxz-3xn-yfb)

证书安装

- 通过SSL证书服务购买和签发证书后,可以将已签发的证书下载并安装到Nginx(或Tengine)服务器上。
  • 下载证书到本地
# 1. 登录SSL证书控制台。

# 2. 定位到要下载的证书,单击操作列下的下载。

# 3. 在证书下载页面,定位到Nginx服务器,单击操作列下的下载。该操作会将Nginx服务器证书压缩包下载到本地,并保存在浏览器的默认下载位置。

Aliyun SSL 证书签发&安装-LMLPHP

# 4. 打开浏览器的默认下载位置,解压已下载的Nginx证书压缩包文件。解压后您将会获得以下文件:

Aliyun SSL 证书签发&安装-LMLPHP

  • 在Nginx独立服务器上安装证书
  1. 登录Nginx服务器

    使用远程登录工具(例如,PuTTY、Xshell)登录服务器。

  2. 执行以下命令,在Nginx安装目录(默认为/usr/local/nginx/conf)下创建一个用于存放证书的目录(命名为cert)。

# 进入Nginx默认安装目录。如果您修改过默认安装目录,请根据实际配置进行调整。
$ cd /usr/local/nginx/conf

# 建证书目录,命名为cert。
$ mkdir cert

Aliyun SSL 证书签发&安装-LMLPHP

  1. 使用远程登录工具(例如,PuTTY、Xshell)附带的本地文件上传功能,将本地证书文件和密钥文件上传到Nginx服务器的证书目录(示例中为/usr/local/nginx/conf/cert)。

Aliyun SSL 证书签发&安装-LMLPHP

  1. 编辑Nginx配置文件(nginx.conf),修改与证书相关的配置内容。
# 备份配置文件
# nginx.conf默认保存在/usr/local/nginx/conf目录下。如果您修改过nginx.conf的位置,请/usr/local/nginx/conf/nginx.conf替换成修改后的位置。
$ cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

# 打开配置文件
$ vi /usr/local/nginx/conf/nginx.conf
  • 修改nginx.conf文件

nginx.conf:

#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        root html;  #站点目录。
        index index.html index.htm;
    }
}

Aliyun SSL 证书签发&安装-LMLPHP

nginx.conf

    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  xxx.com;

        ssl_certificate      cert/xxx.pem;
        ssl_certificate_key  cert/xxx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

       # location / {
       #     root   html;
       #     index  index.html index.htm;
       # }

       # 这是用于转发 其他端口的 如, IP:端口 进行访问时可以通过设置代理变成 IP 访问
       location / {
            proxy_pass http://127.0.0.1:65432;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

参考文档

点我传送 - 证书购买

点我传送 - 证书申请

点我传送 - 证书安装

点我传送 - Nginx 安装证书

05-27 09:15