[Aliyun] Docker + nginx:alpine + ssl => https

弄个免费的https玩玩

上班有几天了,突然接到电话说阿里云的ECS可以有免费的ssl证书可以领,我寻思当时看的时候不是收费的嘛(好像还老贵了,贫穷😄)。抽空去看了一眼,原来门道有点西小多,多点几下就能看到免费的了。

工具/软件

步骤

  1. 老规矩去弄个ECS+域名呗,不然弄个锤子https。
  2. 然后去阿里云的SSL,官网就再上面。正常打开的话,看到的可能不太一样(没错我指的是价格)。修改一下选项,然后就免费了… 😂
    • 选择单个域名
    • 选择DV域名级SSL
    • 选择免费版
    • 证书托管服务里选择

  1. 然后付钱就不教了,下面进入部署环节。

  2. 然后进入账号的SSL证书控制台,领一下刚的证书,然后就可以愉快的如下图了。

  3. 选下载,当前网站部署由于是用的nginx反代,那就对应着下。

  4. 下载的东西是一个压缩包,里面有一个pem结尾(证书文件)和一个key结尾(密钥文件)的东西。这俩东西自己改个随意的名字丢到一个随意的文件夹里去,然后秘密的丢到服务器上去,一会儿要用。

  5. 准备一个default.conf用来写nginx的一些小秘密:

    server {
     listen 80;
     server_name jwxie.cn; # 搁着填你自己的哈
     # 其实localhost也行,但是试了下ios自带的safari会在转跳的时候会显示转跳到https://localhost
     # windows上IR/Chrome/Edge就很正常,很迷幻...
     rewrite ^(.*)$ https://${server_name}$1 permanent; # 转跳http到https
     }
     server
     {
         listen 443 ssl; # 之前试过不加ssl,换着在下面加ssl on;但是好像8行了。
         server_name localhost;
    
         # root html;
         # index index.html index.htm;
    
         ssl_certificate cert/jwxie.cn.pem; # 搁着填刚才那个证书文件的地址
         ssl_certificate_key cert/jwxie.cn.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  /path/to/your/自个儿的;
         index index.html index.htm;
                 }
    
         error_page 500 502 503 504  /50x.html;
         location /50x.html {
             root /path/to/your/nginx/html;
         }
     }
    
  6. 然后悄咪咪的进入部署服务器的身体,悄咪咪地创建一个文件夹,把那个随意的文件夹丢进来(这里就叫他cert文件夹了),弄个新的Dockerfile,里面写一些小秘密。

 FROM nginx:alpine
 COPY /path/to/your/nginx default.conf /path/to/your/nginx default.conf
 COPY /path/to/your/'cert' folder /path/to/your/nginx/cert
 # Other build commands ...
  1. 把你的网站文件也丢到这个文件夹里面来 …
  2. docker build …
  3. docker run … (别忘了绑定80和443端口)
  4. 打开浏览器,测试一下,成功就OVER,不成功下次再说…

总结

⭐九折?么的总结⭐