首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx上的SSL配置,ShinyProxy (SSL密钥问题?)

Nginx上的SSL配置,ShinyProxy (SSL密钥问题?)
EN

Stack Overflow用户
提问于 2022-11-02 19:10:56
回答 1查看 30关注 0票数 0

我目前正在使用以下工具来允许基于Web的容器访问:> Nginx > ShinyProxy > Docker。服务器在Ubuntu22.04LTS上运行。Docker将容器转发到ShinyProxy,然后ShinyProxy输出到:8080,我使用Nginx将所有请求从URL (和80)反向代理到443,HTTPS。

我们有几个web应用程序在这个系统上运行,它们运行得很好,但是我似乎无法锁定HTTPS/SSL的挂锁,即使web应用程序没有运行,并且得到了404/502 Nginx错误页面。

无论Nginx的关键声明看起来多么简单,要么我遗漏了一个步骤,要么是某些东西的格式或配置错误。

我使用基于ShinyProxy提供的一些设置(https://shinyproxy.io/documentation/security/)的Nginx配置文件(https://shinyproxy.io/documentation/security/),我们的站点(可以链接到站点,使用ln -s支持)如下所示:

代码语言:javascript
复制
server {
  listen                80;
  server_name           ourwebserverurl;
  rewrite     ^(.*)     https://$server_name$1 permanent;
}

server {
  listen                443 ssl;
  server_name           ourwebserverurl;
  access_log            /var/log/nginx/shinyproxy.access.log;
  error_log             /var/log/nginx/shinyproxy.error.log error;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  ssl_certificate       /etc/ssl/certs/ourwebserverurl.crt;
  ssl_certificate_key   /etc/ssl/private/ourwebserverurl.key;

   location / {
       proxy_pass          http://127.0.0.1:8080/;

       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_read_timeout 600s;

       proxy_redirect    off;
       proxy_set_header  Host              $http_host;
       proxy_set_header  X-Real-IP         $remote_addr;
       proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
       proxy_set_header  X-Forwarded-Proto $scheme;
     }


}

为了创建键,我们从以下命令开始:

代码语言:javascript
复制
openssl req -sha256 -newkey rsa:2048 -keyout ourserverurl.key.enc -out ourserverurl.csr

这创建了两个文件,一个加密的PEM密钥和一个CSR,我们将CSR交给了GlobalSign,后者颁发了一个服务器证书。

Nginx需要两个密钥文件,第一个是在ssl_certificate中声明的,它是由已发布的服务器GlobalSign证书、它们的中间文件和它们的根证书(在这里找到的中间和根证书https://support.globalsign.com/ca-certificates/intermediate-certificates/intranetssl-root-intermediate-certificates)组成的密钥链包,它们都是正确的https://support.globalsign.com/ca-certificates/intermediate-certificates/intranetssl-root-intermediate-certificates格式。我已经将它们连接到以下链中的单个.crt中:颁发>中间>根。虽然复制密钥并将其粘贴到key服务并不是最好的主意,但我使用(https://tools.keycdn.com/ssl)检查了它,并从该站点的输出中获得了“没有检测到链问题”。

我已经联系了GlobalSign,似乎我已经拥有了我应该拥有的所有密钥,现在只剩下配置了。

对于最后一个密钥,输出的key.enc --我对密钥进行了加密,并将其更改为ourserverurl.key,并坚持使用PEM格式,尽管我使用了.key格式。我已经在.pem中看到了一些Nginx配置,但是我也有相同的文件,但是文件扩展名不同,没有任何改变。

我尝试过多种不同的格式,检查已发布的GlobalSign密钥与未加密的私钥,并在这方面得到匹配,但Nginx不会将显示为红色和删除的HTTPS更改为一个很好的挂锁。

它感觉我有所有正确的钥匙,但我不确定我是否有正确的配置。Nginx告诉我如果我使用

代码语言:javascript
复制
sudo nginx -t

我得到了这个输出

代码语言:javascript
复制
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

我的防火墙目前可以在IPv4和IPv6的标准网页访问请求上打开80和443个请求。

我觉得我缺少了一些config命令,我也不知道hiccup在哪里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-04 16:40:31

我发现我们的组织从GlobalSign那里给了我们错误的证书类型:当它应该是OrganizationSSL时,他们给了我们一个IntranetSSL证书类型。我使用OrganizationSSL中间证书和根证书创建了正确的链,并将新发布的服务器证书放在顶部。连锁检查,Nginx检查,我重新启动Nginx,它翻转到挂锁。

编辑:原来我不需要根证书:我在我的链中删除了它,并且只在.crt中使用了颁发的服务器证书+中间证书。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74294516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档