当前位置: 首页 > 知识库问答 >
问题:

配置NGINX CloudFlare SSL

蓟和煦
2023-03-14

那么...

我在端口8080的服务器上运行了一个节点应用程序,我正在尝试使用NGINX和CloudFlare使其能够通过SSL工作。请注意以下几点。。。

  1. 我的主机正在运行Ubuntu 16.04 LTS

...我以前的NGINX配置看起来像。。。

server {
    listen 80;

    location / {
        proxy_pass http://localhost:8080;
    }
}

...现在看起来。。。

# HTTP
server {
  listen 80;
  listen [::]:80 default_server ipv6only=on;
  return 301 https://$host$request_uri;
}

# HTTPS
server {
  listen 443;
  server_name test.company.com;

  ssl on;
  ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
  ssl_verify_client on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://localhost:8080/;
    proxy_ssl_session_reuse off;
    proxy_set_header Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_redirect off;
  }
}

...我遵循了这里的例子和它在这里提供的链接,我怀疑上面的一切都是必需的(我是一个极简主义者)。每当我运行sudonginx-t时,我仍然会在未指定ssl\u证书和ssl\u证书密钥方面出错。我不知道如何从CloudFlare下载require文件,据我所知,我认为我不需要这样做。

如果我尝试将CloudFlare原始pull证书作为ssl_证书和ssl_证书_密钥重新使用,则得到的错误nginx:[emerg]ssl_CTX_use_PrivateKey_文件(“/etc/nginx/certs/CloudFlare.crt”)失败(SSL:error:0906D06C:PEM例程:PEM\u read\u bio:no start line:expected:ANY PRIVATE KEY error:140B0009:SSL例程:SSL\u CTX\u use\u PRIVATE KEY\u file:PEM lib)

我相信有可能创建自己的自签名证书,但我计划最终使用此策略来加速生产机器。非常感谢任何能为我指明正确方向的帮助。

共有1个答案

梁丘凯定
2023-03-14

看起来您正在使用Cloudflare的源CA服务,很好!

该问题看起来像是您将SSL私钥放在了SSL\u client\u certificate属性中,而没有将真正的SSL证书放在配置中。您的Nginx SSL配置应包含以下行:

ssl\u证书/path/to/your\u证书。质子交换膜;ssl证书密钥/路径/到/您的密钥。钥匙

确保SSL证书对应于。PEM文件具有正确的内容,并且证书密钥文件包含。密钥文件也包含正确的内容。

要使用原始CA生成证书,请导航到Cloudfalre仪表板的Crypto部分。从那里,单击“原始证书”部分中的“创建证书”按钮。完成向导中的步骤后,您将看到一个窗口,允许您下载证书文件和密钥文件。确保将它们放在正确的文件中,并将其安装到web服务器上。

进一步阅读:

  • 如何在NGINX中安装源CA证书
  • 使用源CA创建和管理证书

 类似资料:
  • 丰富的过滤器插件的存在是 logstash 威力如此强大的重要因素。名为过滤器,其实提供的不单单是过滤的功能。在本章我们就会重点介绍几个插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!

  • Codec 是 logstash 从 1.3.0 版开始新引入的概念(Codec 来自 Coder/decoder 两个单词的首字母缩写)。 在此之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,这全是因为有了 codec 设置。 所以,这里需要纠正之前的一个概念。Logstash 不只是一个input | filter | outpu

  • 在 “Hello World” 示例中,我们已经见到并介绍了 logstash 的运行流程和配置的基础语法。从这章开始,我们就要逐一介绍 logstash 流程中比较常用的一些插件,并在介绍中针对其主要适用的场景,推荐的配置,作一些说明。 限于篇幅,接下来内容中,配置示例不一定能贴完整。请记住一个原则:Logstash 配置一定要有一个 input 和一个 output。在演示过程中,如果没有写明

  • exVim 的配色由三部分组成: 你自己的Vim配色, exVim 插件的语法高亮和插件的配色. 你可以按照以下步骤来定制你的配色: 安装你的配色 exVim 提供了三种方法安装你的自定义配色 方法1. 在 ex-colorscheme 中安装(推荐) 首选的方法是在 ex-colorschemes 中安装自己的配色, 这种方法仅仅需要你把自己的配色文件放到 vimfiles/bundle/ex-

  • 目录: 在配置项目yml文件中: 问题: null 客户端YML: 有没有人知道我怎样才能在这两种情况下只带一个配置文件?

  • 因为有很多不同配置 redis 的方式,StackExchange.Redis 提供了一个丰富的配置模型,当调用 Connect (或 ConnectAsync )时调用它。 var conn = ConnectionMultiplexer.Connect(configuration); 这里的 configuration 可以是下面的任意一个: 一个 ConfigurationOptions 实