杂记 | 使用Docker和Nginx为网站添加HTTPS访问功能

文章介绍了如何通过HTTPS协议增强网站数据传输的安全性,包括HTTPS的基本概念、准备SSL证书,以及详细步骤来编辑nginx.conf配置文件,启用SSL并使用docker-compose启动Nginx服务,实现HTTPS连接。
摘要由CSDN通过智能技术生成


01 前言

1.1 HTTPS介绍

HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密通信保护网站数据传输的协议。它是 HTTP 协议的安全版本,通过使用 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议对数据进行加密和认证。在 HTTPS 下,传输的数据在客户端和服务器之间是加密的,确保信息不被窃听、篡改或伪装。

1.2 准备工作

需要一台Linux服务器、一个域名,安装docker。
并且从阿里云等服务商处获取了SSL 证书。
在阿里云的域名管理界面,点击“开启SSL证书”。
在这里插入图片描述
选择“免费证书”即可。
在这里插入图片描述
然后点击“创建证书” -> “证书申请”
填写相应信息,然后提交审核。
通过后点击“下载”,选择Nginx。
在这里插入图片描述
下载好后解压,包含一个.key文件和一个.pem文件。将它们上传到服务器。

02 编写nginx.conf

...
http {
	...
    server {
    	# http2可以提升响应速度 是可选的
        listen 443 ssl http2;				# 这里要加上ssl 443是https的默认端口 80是http的默认端口
        server_name www.xxx.top;			# 证书对应的域名
        location / {
            ...
        }
        ssl_certificate /etc/ssl/certificates/www/www.xxx.top.pem;		# 证书存放路径(docker容器内的路径)
        ssl_certificate_key /etc/ssl/certificates/www/www.xxx.top.key;	# 私钥存放路径(docker容器内的路径)
        # 以下配置可以提升响应速度 是可选的
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/ssl/certificates/www/www.xxx.top.pem;
        ssl_buffer_size 4k;
    }
}

概括地说,在监听时新增了ssl,同时增加了ssl_certificate和ssl_certificate_key配置,即可开启HTTPS了。

03 使用docker启动nginx

在服务器的/root目录下新建ssl目录,然后将证书和私钥文件放在该目录下。
编写docker-compose.yml文件(需要安装docker-compose)

version: '3.3'
services:
    nginx:
        volumes:
            - '/root/nginx.conf:/etc/nginx/nginx.conf'	# 配置文件映射
            - '/root/ssl:/etc/ssl/certificates'			# 证书目录映射
            - '/root/html:/usr/share/nginx/html'		# 页面目录映射(可选)
        network_mode: host								# 使用宿主机的网络
        image: 'nginx:stable-alpine-slim'

启动docker容器

# 需要先cd到docker-compose.yml所在的目录 再执行命令
docker-compose up -d

然后就可以输入带https域名进行访问了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿林仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值