nginx配置https 基于docker容器运行

前言

在docker中配置https和在服务器上配置是一样的,唯一不同的是需要映射443端口,否则配置后无法进行访问,这里的443端口是指宿主机到docker容器。

1.申请并下载ssl证书

ssl证书是收费的,如果加密需求比较高,建议购买加密等级高的证书,如果一般使用,则可以申请免费的Dv证书。阿里云是每年每个账号下可以申请20个免费的ssl证书,至于其他网站也有相应的免费证书。
阿里云:https://promotion.aliyun.com/ntms/act/sslbuy?utm_content=se_1010363122

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到此即可拥有20个免费的ssl证书了

在这里插入图片描述
选择创建证书

在这里插入图片描述
选择证书申请
在这里插入图片描述
输入域名,不需要带前缀,比如:baidu.com
域名验证方式自动DNS验证即可,不需要其他验证,无需我们操作。

在这里插入图片描述
点击验证即可,如果验证失败,则过一会儿再点击验证即可。可能存在延时。
在这里插入图片描述
然后点击下载》nginx

在这里插入图片描述
下载之后得到两个文件,我们将文件放入cert文件夹中,然后上传到我们的服务器中。

docker环境下,则需要将文件拷贝到docker容器中,非docker环境则忽略此步。
/home/cert则是我服务器目录,mynginx是我的docker容器名称。

docker cp /home/cert mynginx:/etc/nginx/

然后更改配置文件,docker中nginx默认是使用的/etc/nginx/conf.d/default.conf配置,由于是扫描的*.conf文件,则可以配置多个,这里不做赘述。
关键配置如下:

	listen 443 ssl;
    server_name 你的域名比如:baidu.com www.baidu.com;
    
    ssl_certificate /etc/nginx/cert/xxxx.com.pem;
    ssl_certificate_key /etc/nginx/cert/xxxx.com.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 / {
		root /home/www;
		index index.html index.htm;
	}

配置后需要重启docker容器。

查看docker容器是否启用443
docker ps

查看nginx容器的映射端口,如下则是开启了443端口。
在这里插入图片描述
如果没有开启443端口映射,则上面配置的ssl证书无法生效,访问则会打不开网站。

解决办法:
先停止docker内所有容器,因为需要停止docker 如果存在其他应用,则可以删除nginx容器后重新创建,在创建时-p 443:443
docker run -d --name mynginx -p 80:80 -p 443:443 nginx

如果重新创建则不需要执行这里,这是手动修改配置,增加443端口映射
systemctl stop docker

找到配置文件,/var/lib/docker/容器ID/hostconfig.json
编辑,找到

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"80"}]]},

修改为

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"80"}],"443/tcp":[{"HostIp":"","HostPort":"443"}]},

保存,然后启动docker
systemctl start docker
启动容器
docker start mynginx

然后即可使用https访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值