docker nginx配置https访问

一、申请https证书  

        腾讯云SSL证书,免费1年(亚洲诚信品牌免费型DV版SSL证书)

二、下载证书文件

        1_admin.huagenjiaoyu.top_bundle.crt和2_admin.huagenjiaoyu.top.key

三、更改docker挂载配置文件(配置nginx虚拟机)

        server {
        listen 443 ssl;  # 1.1版本后这样写
        server_name admin.huagenjiaoyu.top; #填写绑定证书的域名
        ssl_certificate /data/docker_conf/nginx/ssl/1_admin.huagenjiaoyu.top_bundle.crt;  # 指定证书的位置,绝对路径
        ssl_certificate_key /data/docker_conf/nginx/ssl/2_admin.huagenjiaoyu.top.key;  # 绝对路径,同上
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://hgedu;
        }
        location ~ ^/hgedufiles {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }

      报错:cannot load certificate "/data/docker_conf/nginx/ssl/1_admin.huagenjiaoyu.top_bundle.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/data/docker_conf/nginx/ssl/1_admin.huagenjiaoyu.top_bundle.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)    容器中的nginx需要到容器中的路径查找证书文件,需要添加挂载目录   /etc/nginx是容器中的数据根目录

四、docker启动命令

       docker run --name zlz_nginx_ssl -p 80:80 -p 443:443 -d -v /data/docker_conf/nginx/conf/nginx-ssl.conf:/etc/nginx/nginx.conf  -v /data/docker_conf/nginx/logs:/var/log/nginx  -v /data/docker_conf/nginx/html:/usr/share/nginx/html -v /data/docker_conf/nginx/ssl:/data/docker_conf/nginx/ssl nginx        

你可能感兴趣的:(docker)