docker中nginx添加SSL证书,并支持http和https连接

news/2024/7/7 21:42:28 标签: http, docker, nginx
http://www.w3.org/2000/svg" style="display: none;">

背景

最近在弄一个小程序,小程序上线需要后端https访问。那我原先的需要在nginx中添加SSL证书

关于SSL证书,可以去阿里云或者腾讯云去申请。不过现在个人免费版只有3个月的有效期。我们申请到证书后,放到nginx
我们新增了一个cert文件夹

mkdir cert

然后将证书的key和pom丢进去

https://img-blog.csdnimg.cn/direct/4d160f9729b047d48543924236c3cdf8.png" alt="在这里插入图片描述" />
因为我的项目之前在docker里已经用了nginx做代理,所以我这里就不再赘述docker安装nginx的流程。
就直接修改nginx的配置文件,需要在http块内再配置一个server

    server {
     #HTTPS的默认访问端口443。
     #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
     listen 443 ssl;
     
     #填写证书绑定的域名
     server_name www.xxxx.com;
 
     #填写证书文件 容器内的路径,启动容器的时候挂载上就行
     ssl_certificate /etc/nginx/conf/cert/www.xx.com.pem;
     #填写证书私钥文件绝对路径
     ssl_certificate_key /etc/nginx/conf/cert/www.xx.com.key;
 
     ssl_session_cache shared:SSL:1m;
     ssl_session_timeout 5m;
	 
     #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
     #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
     ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

     #表示优先使用服务端加密套件。默认开启
     ssl_prefer_server_ciphers on;
 
 
    location / {
            alias /img_data/ftp/ftpuser/upload/;
            autoindex on;
            index index.html index.htm;

    }
    location /main/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://xxxxxx:9005/main/; # 反向代理
    }
}

另外我们还做了一个端口转发,把小程序的访问转到了9005端口
然后启动容器

docker run  -it --restart=always -p 9001:80 -p 9006:443 --name nginx-hy4 -v /home/nginx/conf/nginxnew.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/conf/cert:/etc/nginx/conf/cert -v /img_data/ftp/ftpuser/upload/:/img_data/ftp/ftpuser/upload/  nginx:latest

9001是http的端口,9006是https的端口


http://www.niftyadmin.cn/n/5278700.html

相关文章

在 Go 语言中使用 regexp 包处理正则表达式

Go 语言,作为一门现代的编程语言,提供了对正则表达式的强大支持。在 Go 中,正则表达式的功能通过标准库中的 regexp 包来实现。本文将介绍如何在 Go 中使用 regexp 包来编译和执行正则表达式,以及如何从文本中匹配和提取信息。 正…

基于[Discretized] Torus的全同态加密指引(2)

前序博客有: 基于[Discretized] Torus的全同态加密指引(1) 5. 基于已加密数据处理 很显然,TLWE加密方案和TGLWE加密方案均具有加法同态性。[GSW13] Gentry–Sahai–Waters 方法使用matrix product来将TLWE加密方案和TGLWE加密方…

融资项目——vue之双向数据绑定

上一篇文章中使用的v-bind是单向绑定方法,即数据改变,网页相应的视图发生改变,但是网页视图发生改变其相关联的数据不会发生改变。但是双向数据绑定不同之处在于网页视图发生改变其相关联的数据也会发生改变。Vue可以使用v-model进行双向数据…

从安全、开发、产品三个角度反对用refresh_token续期access_token的观点

说明: access_token: 服务端与客户端通信,有时服务端需要知道客户端的身份,就会用到access_token来用于验证身份。 refresh_token: 但为了保证安全token会设置过期时间,如果直接过期,相当于用户…

Go 语言实战:掌握正则表达式的应用与技巧

Go 语言实战:掌握正则表达式的应用与技巧 1. 引言2. 正则表达式基础2.1 基本概念2.2 常见元素2.3 基本示例 3. Go语言中的正则表达式库3.1 引入regexp包3.2 编译正则表达式3.3 使用正则表达式3.4 示例代码 4. 常用正则表达式函数及使用示例4.1 MatchString4.2 FindS…

国家高新技术企业认定,如何提前准备?

国家高新技术企业认定是企业发展的重要里程碑,它不仅代表了企业的技术实力,还能带来一系列的政策优惠和支持。然而,高新技术企业认定有着严格的条件和流程,需要企业提前做好充分的准备。本文将为您详细解答如何提前准备国家高新技…

前端学习——关于前端框架的思考

前端框架 我们知道在AngularJS,react,vue等前端框架出现之前,前端开发都是通过js直接操作dom树来实现的,而有了前端框架之后,前端开发基本上不需要在直接操作dom树,相当于在原生html的dom树之间和前端程序…

深信服技术认证“SCSA-S”划重点:命令执行漏洞

为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容,“考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…