docker容器的nginx配置https证书

nginx容器要开启443接口和80接口,这点非常重要,我配置的时候因为没有开启443端口,其他配置都没有问题,搞了一天才发现是这儿的原因。

docker run --name nginx -d -p 443:443 -p 80:80 nginx:latest

在阿里云官网的SSL模块申请免费的SSL证书,可以免费用一年,具体步骤不会的可以百度。

如果你域名不是阿里云的,要在域名解析网添加解析

http://www.sinoweb.com.cn/userself/product.asp?act=list&productclass=domain

 

具体步骤:

1.在域名解析网添加一条DNS解析

2:同时在DNS解析上添加一条阿里给的txt记录。

如果是阿里的域名且你的服务器和此时你申请SSL证书的阿里云账号是一个,直接自动解析。

申请完证书,选择nginx下载,会给一个key文件,一个pem文件,名字可以自定义修改,然后这俩文件复制到nginx容器中的任意文件夹下,我是自己在nginx容器的etc/nginx/conf.d下创建了一个cert文件夹,并把这俩文件放进去。

然后在nginx里面的server添加配置

upstream programunion {
        server 172.17.8.233:8010 max_fails=3 fail_timeout=30s;
    } 

server {

    listen 443 ssl;

    server_name programunion.ivdchina.org;

    root html;

    index index.html index.htm;

    ssl_certificate   /etc/nginx/conf.d/cert/programunion.pem;(pem文件在nginx容器里的绝对路径)

    ssl_certificate_key  /etc/nginx/conf.d/cert/programunion.key(key文件在nginx容器里的绝对路径);

    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 / {

index index.html index.jsp index.htm;

proxy_pass http://programunion;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

  #proxy_connect_timeout 90;

#proxy_send_timeout 90;

proxy_read_timeout     18000;

client_max_body_size 400M;

#proxy_buffers 32 4K;

}

}

 

你可能感兴趣的:(docker容器的nginx配置https证书)