启用 HTTPS

Kesa...大约 2 分钟vuepress

1. 获取证书

这里采用阿里云的免费证书。

1.1 申请

2. 安装证书

证书申请成功后,在下证书会有 xxx.pem 证书 和 xxx.key 证书私钥 两个文件。

这里服务器采用 Docker + Nginx 的形式部署,nginx 已有文件夹挂载到本地(其他方式详见 安装证书open in new window),故:

  • 创建文件夹 cert, 上传证书文件

  • 创建配置文件 conf.d/ssl.conf

    #以下属性中,以ssl开头的属性表示与证书配置有关。
    server {
        #配置HTTPS的默认访问端口为443。
        #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
        #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
        listen 443 ssl;
    
        #填写证书绑定的域名
        server_name <yourdomain>;
        root html;
        index index.html index.htm;
    
        #填写证书文件名称
        ssl_certificate cert/<cert-file-name>.pem;
        #填写证书私钥文件名称  
        ssl_certificate_key cert/<cert-file-name>.key;
    
        ssl_session_timeout 5m;
        #表示使用的加密套件的类型
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    
        ssl_prefer_server_ciphers on;
        location / {
            #Web网站程序存放目录
            root html;
            index index.html index.htm;
        }
    }
    
  • (可选) 配置 HTTP 自动跳转 HTTPS 修改 conf.d/localhost.conf:

    server {
        # ...
        #将所有HTTP请求通过rewrite指令重定向到HTTPS。
        rewrite ^(.*)$ https://$host$1;
        # ... 
    }
    
  • 重启容器:

    $ docker restart xxxx
    

3. 容器关联 443 端口

之前启动容器时仅关联了80端口,故需要修改配置。有两种方式:

  • 创建新镜像,重新启动
  • 直接修改容器配置

3.1 创建新镜像

  1. 停止容器:

    $ docker stop containter01
    
  2. 创建镜像

    $ docker commit container01 image02
    
  3. 启动新镜像

    $ docker run -p 80:80 -p 443:443 image02
    

3.2 直接修改容器配置

  1. 停止 docker 容器:

    $ docker stop container
    
  2. 停止 docker 服务

    $ systemctl stop docker
    
  3. 进入文件夹 /var/lib/docker/containers/[hash_of_the_container]/, 修改文件 hostconfig.jsonconfig.v2.json

  4. 启动 docker 服务

  5. 启动 docker 容器

Reference

  1. 如何安装SSL证书open in new window 阿里云
  2. How do I assign a port mapping to an existing Docker container?open in new window Stackoverflow
上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.2