2016-12-19 410 views
7

SO ...配置NGINX +的CloudFlare + SSL

我已經在服務器上運行一個節點應用端口8080,我想使它在使用NGINX和CloudFlare的SSL工作。請注意以下...

  1. 我的主機運行的是Ubuntu的LTS 16.04
  2. 我目前使用CloudFlare的通用SSL(無級)
  3. 我有我的測試主機的DNS設置爲test.company.com
  4. 我從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)

我相信,有可能創建自己的自簽名的證書,但我我計劃最終使用這種策略來生產生產機器。任何幫助指引我在正確的方向非常感謝。

回答

1

看起來你正在使用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儀表板的Crypto部分。從那裏,單擊「原始證書」部分中的「創建證書」按鈕。一旦完成嚮導中的步驟,您將看到一個窗口,允許您下載證書文件和密鑰文件。確保將它們放在正確的文件中並將它們安裝到Web服務器上。

Cloudflare Origin CA Certificate and Key

進一步閱讀: