前言
在之前的努力中,我已经建立了自己的服务站点,安装了一系列很有意思的服务,之后为了增强安全性,采用https访问,这就需要配置SSL证书。
配置
查看Nginx的宿主机挂载目录
docker inspect nginx
得到以下结果 ![[Pasted image 20230916101624.png]] 在服务器创建ssl目录,用来存放ssl证书
mkdir /var/nginx/ssl
查看证书文件是否同步
docker exec -it nginx /bin/bash
cd /etc/nginx/ssl
ls
退出容器后,修改nginx.conf
增加ssl配置
server {
listen 443;
ssl on;
ssl_certificate ssl/xxx.xxx.xxxxx.xxx.pem;
ssl_certificate_key ssl/xxx.xxx.xxxxx.xxx.key;
sendfile on;
...
重启Docker容器
docker restart nginx
设置http自动跳转为https:
server {
listen 80;
server_name xxx.xxxxx.xxxx;
return 301 https://$host$request_uri;
}
拓展
进行以上的步骤,https就已经安装完成了,为了更好地防御恶意访问,我们关闭ip访问,只能通过域名访问,需要在nginx.conf
文件中添加这一段:
server {
listen 80 default_server;
listen 443 default_server;
ssl_certificate ssl/xx.xxxx.xxxx.pem;
ssl_certificate_key ssl/xxx.xxx.xxxx.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
server_name _;
return 403;
}
后记
之后可能会将上述过程中的一些配置细节做一个详细的补充,看心情喽。 ┗|`O′|┛