【实战】阿里云服务部署之手动部署数字证书

84 阅读1分钟

接上文【实战】手动使用阿里云ECS部署前端页面-docker版

下载证书

image.png

下载完之后解压,会获得 xxx.key和xxx.pem的文件

上传证书到服务器

选择喜欢的方式把证书上传到服务器,可以放在/etc/ssl/certs目录里 比较方便的话就是使用workbench,可以在阿里云控制台的服务实例里面点击远程连接

image.png

修改部署脚本

因为之前的dockfile把node镜像和nginx镜像都打包了,所以为了后面多个docker服务可以部署。 这里使用的方案是将宿主机的证书目录(如 /etc/ssl/certs)挂载到容器内: 在docker run 后面加上-v /etc/ssl/certs:/etc/ssl/certs:ro-p 443:443 举例:

docker run -d \
  --name project-name \
  -p 80:80 \
  -p 443:443 \
  -v /etc/ssl/certs:/etc/ssl/certs:ro \
  --restart unless-stopped \
  project-name

修改nginx配置

增加ssl配置

listen 443 ssl http2;
server_name yourdomain.com;

# SSL证书配置
ssl_certificate /etc/ssl/certs/xxx.pem;
ssl_certificate_key /etc/ssl/certs/xxx.key;

# SSL安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

增加http重定向到https

server {
    listen 80;
    server_name yourdomain.com;

    # 重定向所有HTTP请求到HTTPS
    return 301 https://$server_name$request_uri;
}
    

重新部署

部署之后访问就可以访问https连接了