首页 > 系统相关 >Docker nginx 配置 SSL 证书 cannot load certificate

Docker nginx 配置 SSL 证书 cannot load certificate

时间:2023-09-11 12:12:36浏览次数:41  
标签:load certificate ssl etc header nginx proxy SSL

错误原因分析:
cannot load certificate "/etc/nginx/test.com.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/test.com.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)

有很多博客写的是权限 问题! 当然,权限可能只是其一,但问题的本质不是这个。

Nginx 在DOCKER 内,要配置 SSL 证书 , 配置后出现这个问题,查了一天,终是无用。
后思索分析:

Nginx 在 Docker 内 。 配置应该 在 nginx 的容器里,而不是宿主机!!!

故将 SSL 证拷入容器配置后就OK 了!

最后 将SSL 证书目录 挂载到 nginx 上,配置改用 nginx 内部的文件目录,就OK 。
docker run -p 80:80 -p 433:433 \
-v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /etc/nginx/logs:/var/log/nginx \
-v /etc/nginx/html:/usr/share/nginx/html \
-v /etc/nginx/conf:/etc/nginx/conf.d \
-v /etc/certs:/certs \  --- /etc/certs  宿主机SSL 存放目录 ,-- Nginx 容器内存放目录 /certs

-v /etc/localtime:/etc/localtime \ --name nginx \ --restart=always \ -d nginx:latest
seserver { 
		listen 		443 ssl;
		server_name ~^(?<subdomain>.+).test.com$;
		client_max_body_size 10M;
		ssl_certificate      /certs/test.com.pem;
        ssl_certificate_key  /certs/test.com.key;  
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5000m;  
        ssl_prefer_server_ciphers  on; 
		ssl_protocols TLSv1.2 TLSv1.3;
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;   
        location / {  
		    proxy_set_header Host $host; 
            proxy_set_header X-Real-IP $remote_addr; 
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
            proxy_redirect   off; 
            proxy_set_header X-Forwarded-Proto $scheme; 
			add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
            add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';  
			if ($subdomain ~* "nexus") {   
               proxy_pass http://nexus_ssl;     
            } 
        }  
    }

  



标签:load,certificate,ssl,etc,header,nginx,proxy,SSL
From: https://www.cnblogs.com/valeb/p/17693186.html

相关文章

  • 百度上传插件Web Uploader
    WebUploader是由BaiduWebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS6+,android4+。两套运行时,同样的调用方式,可供用户任意选用。采用大文件分......
  • 百度WebUploader开源上传控件
    前言首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已.下面先介绍一下WebUploader简介:WebUploader是由BaiduWebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能......
  • 六、Nginx缓冲区
    先来思考一个问题,接入Nginx的项目一般请求流程为:“客户端→Nginx→服务端”,在这个过程中存在两个连接:“客户端→Nginx、Nginx→服务端”,那么两个不同的连接速度不一致,就会影响用户的体验(比如浏览器的加载速度跟不上服务端的响应速度)。其实也就类似电脑的内存跟不上CPU速度,所以对于......
  • 七、Nginx缓存机制
    对于性能优化而言,缓存是一种能够大幅度提升性能的方案,因此几乎可以在各处都能看见缓存,如客户端缓存、代理缓存、服务器缓存等等,Nginx的缓存则属于代理缓存的一种。对于整个系统而言,加入缓存带来的优势额外明显:减少了再次向后端或文件服务器请求资源的带宽消耗。降低了下游服务器的......
  • nginx本地缓存
           ......
  • 使用Nginx作为Java后端的反向代理
    什么是Nginx?Nginx是一款高性能、轻量级的开源Web服务器和反向代理服务器。它广泛用于提供Web服务、负载均衡、反向代理、HTTP缓存以及安全性增强等功能。Nginx的架构允许它处理大量并发连接,同时保持低的内存消耗。为什么使用Nginx?使用Nginx作为Java后端的反向代理有许多好处,包括:性......
  • webpack--loader
    引言因为webpack默认只能解析js资源,当我们要处理css等资源时,无法进行处理,所以我们就要通过loaderloader来载入加载器来对相应的资源做特定的解析。报错案例例如:我们直接在js中引入css文件再次编译时,会报错。index.css.box1{width:100px;height:100px;backgr......
  • Nginx实战教程
    B站最易懂的Nginx实战教程,全程干货无废话!只需90分钟就能学会!https://www.bilibili.com/video/BV19V4y1i7ar?p=1&vd_source=f94762f40dbb72123cdfef2c22447c7a......
  • CentOS7.5报java: error while loading shared libraries: libjli.so: cannot open sh
    1.问题描述:CentOS版本:CentOS-7.5-x86_64-DVD-1804jdk版本:jdk-8u161-linux-x64.tar配置jdk时,执行java报错java:errorwhileloadingsharedlibraries:libjli.so:cannotopensharedobjectfile:Nosuchfileordirectory 2.解决方法:发现是CentOS7.5不支持jdk-8u161......
  • Navicat连接oracle时,提示oracle library is not loaded
    一、背景本机配置:win764位本机同时安装了oracle服务器端和客户端服务器端:11gR2; 客户端:oracle10g32位(由于项目需要,必须安装此客户端) 二、报错描述先安装的11gR2,用Navicat连接正常,后面再安装10g32位的客户端后,连接报错:oraclelibraryisnotloaded 三、报错原因因为......