Linux 环境下给docker容器Nginx配置HTTPS

47 篇文章 2 订阅
21 篇文章 1 订阅

初始环境

腾讯云服务器

阿里云域名 + 阿里云免费SSL

docker环境

Nginx服务器

ps: Nginx挂着主机目录很重要,可以参考我之前的配置教程

传送门 ———> Docker一站式配置Nginx【图文教程】

传送门 ———> Docker一站式配置Nginx【图文教程】

传送门 ———> Docker一站式配置Nginx【图文教程】

申请SSL证书

登录阿里云,搜索SSL

请添加图片描述
请添加图片描述

申请成功后点击下载(由于我的是Nginx服务器,下载Nginx相关证书)

请添加图片描述

解压并更改名称后得到两个文件(key 和 pem)

请添加图片描述

查看Nginx挂载目录

docker inspect nginx

请添加图片描述

我的配置文件挂载目录为 "/usr/nginx/config/:/etc/nginx/",

那么就可以在这里进行配置Nginx

首先在/usr/nginx/config/下创建cert文件夹,用于存放证书文件

我这里已经创建并上传,不再重复创建上传

[root@VM-12-11-centos config]# cd /usr/nginx/config/
[root@VM-12-11-centos config]# pwd
/usr/nginx/config
[root@VM-12-11-centos config]# ls
cert conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
[root@VM-12-11-centos config]#

[root@VM-12-11-centos config]# cd cert/
[root@VM-12-11-centos cert]# ls
part_wenmeng.key part_wenmeng.pem wenmeng.key wenmeng.pem

编写Nginx认证HTTPS配置文件

java项目访问配置

server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name part.wenmeng.online; #需要将yourdomain替换成证书绑定的域名。
    ssl_certificate cert/part_wenmeng.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/part_wenmeng.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
       proxy_pass https://54.4.44.56:9999; #服务器内网地址
	   add_header Access-Control-Allow-Origin *;
    }
}

静态文件配置(其中location中内容不同)

server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name part.wenmeng.online; #需要将yourdomain替换成证书绑定的域名。
    ssl_certificate cert/part_wenmeng.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/part_wenmeng.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
		charset utf-8;
        default_type 'text/html';
        root /usr/share/nginx/html/online;
        index index.html;
        add_header Access-Control-Allow-Origin *;
    }
}

将http转为HTTPS请求配置

server {
    listen 80;
    server_name part.wenmeng.online; //更换为你的域名
    rewrite ^(.*)$ https://part.wenmeng.online; //更换为你的域名
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值