配置NGINX+;CloudFlare+;SSL
所以 我在端口8080的服务器上运行了一个节点应用程序,我正在尝试使用NGINX和CloudFlare使其能够通过SSL工作。请注意以下几点配置NGINX+;CloudFlare+;SSL,ssl,nginx,https,ubuntu-16.04,cloudflare,Ssl,Nginx,Https,Ubuntu 16.04,Cloudflare,所以 我在端口8080的服务器上运行了一个节点应用程序,我正在尝试使用NGINX和CloudFlare使其能够通过SSL工作。请注意以下几点 我的主机运行的是Ubuntu 16.04 LTS 我目前正在使用CloudFlare的通用SSL(免费层) 我的测试主机DNS设置为test.company.com 我已将CloudFlare源拉证书从post复制到我的测试箱的/etc/nginx/certs …我以前的NGINX配置看起来像 server { listen 80; lo
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)
我相信有可能创建我自己的自签名证书,但我计划最终使用此策略来加速生产机器。非常感谢为我指明正确方向的任何帮助。看起来您正在使用Cloudflare的原始CA服务,很好 该问题看起来像是您将SSL私钥放入了
SSL\u client\u certificate
属性中,而没有将真正的SSL证书放入配置中。您的Nginx SSL配置应该包含以下行:
ssl_certificate/path/to/your_certificate.pem;
ssl\u证书\u密钥/path/to/your\u key.key;
确保SSL证书对应于具有正确内容的.PEM文件,并且证书密钥文件也包含具有正确内容的.Key文件
要使用源CA生成证书,请导航到Cloudfalre仪表板的Crypto部分。从那里,单击源证书部分中的Create certificate按钮。完成向导中的步骤后,您将看到一个窗口,该窗口允许您下载证书文件和密钥文件。请确保将它们放置在在正确的文件中,并将其安装到web服务器上
进一步阅读: