首页 文章

配置NGINX CloudFlare SSL

提问于
浏览
10

所以...

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

  • 我的主机正在运行Ubuntu 16.04 LTS

  • 我目前正在使用CloudFlare的通用SSL(免费套餐)

  • 我的测试主机DNS设置为test.company.com

  • 我已将this帖子中的CloudFlare origin pull证书复制到我的测试盒的/ etc / nginx / certs

...我以前的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;
  }
}

...我按照示例here和它提供的链接here和我'm skeptical that everything above is required (I'是一个极简主义者 . 每当我运行 sudo nginx -t 时,我仍然会遇到ssl_certificate和ssl_certificate_key未指定的错误 . 我无法弄清楚如何从CloudFlare下载require文件,据我所知,我不相信我应该这样做 .

如果我尝试重新使用CloudFlare origin pull cert作为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)

我相信可以创建自己的自签名证书,但我计划最终使用这种策略来启动 生产环境 机器 . 非常感谢任何指导我正确方向的帮助 .

1 回答

  • 3

    看起来你正在使用Cloudflare的Origin CA服务,真好!

    问题看起来是您已将SSL私钥放在 ssl_client_certificate 属性中,而不是将您的真实SSL证书放入配置中 . 您的Nginx SSL配置应包含以下行:

    ssl_certificate /path/to/your_certificate.pem; ssl_certificate_key /path/to/your_key.key;

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

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

    Cloudflare Origin CA Certificate and Key

    进一步阅读:

相关问题