SO ...配置NGINX +的CloudFlare + SSL
我已經在服務器上運行一個節點應用端口8080,我想使它在使用NGINX和CloudFlare的SSL工作。請注意以下...
- 我的主機運行的是Ubuntu的LTS 16.04 我目前使用CloudFlare的通用SSL(無級)
- 我有我的測試主機的DNS設置爲test.company.com
- 我從this後複製的CloudFlare的起源拉證書到我的測試箱的/ etc/nginx的/證書
...我以前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,我懷疑高於一切要求(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)
我相信,有可能創建自己的自簽名的證書,但我我計劃最終使用這種策略來生產生產機器。任何幫助指引我在正確的方向非常感謝。