首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >配置NGINX + CloudFlare + SSL

配置NGINX + CloudFlare + SSL
EN

Stack Overflow用户
提问于 2016-12-19 23:41:12
回答 1查看 39.4K关注 0票数 19

所以..。

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

  1. 我的主机正在运行Ubuntu16.04LTS
  2. 我目前正在使用CloudFlare的通用SSL (免费层)
  3. 我的测试主机DNS设置为test.company.com。
  4. 我已将CloudFlare原点拉出证书从 post复制到测试框的/etc/nginx/certs

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

代码语言:javascript
运行
复制
server {
    listen 80;

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

...it现在看起来..。

代码语言:javascript
运行
复制
# 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;
  }
}

...I遵循了这里及其提供的链接这里,我怀疑上面的一切都是必需的(我是一个极简主义者)。每当我运行sudo nginx -t时,我仍然会在未指定ssl_certificate和ssl_certificate_key时出现错误。我不知道如何从CloudFlare下载所需的文件,而且据我所知,我不认为我需要下载。

如果我尝试重复使用CloudFlare原点拉证书作为ssl_certificate和ssl_certificate_key,则会得到错误nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/certs/cloudflare.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: ANY PRIVATE KEY error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)

我相信这是有可能创建我自己签署的证书,但我计划使用这一战略,最终剥离生产机器。任何帮助我指出正确的方向是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2017-02-23 14:49:17

看起来你在使用Cloudflare的原产地CA服务,不错!

这个问题看起来像是您已经将SSL私钥放在ssl_client_certificate属性中,而不是将真正的SSL证书放在您的配置中。您的Nginx配置应该包含以下行:

代码语言:javascript
运行
复制
ssl_certificate         /path/to/your_certificate.pem;
ssl_certificate_key     /path/to/your_key.key;

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

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

进一步读:

另外,不推荐ssl on相反,,使用listen 443 ssl;

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

https://stackoverflow.com/questions/41232749

复制
相关文章

相似问题

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