2016-12-19 19 views
7

SO ...設定nginxの+ CloudFlareの+ SSL

私は、ノード・アプリケーションがポート8080でサーバー上で実行されていると私はnginxのとCloudFlareのを使用して、SSLを介して動作するように、それを有効にしようとしていますがあります。次の点に注意してください...

  1. 私のホストは、私は現在、CloudFlareのユニバーサルSSL(無料ティア)
  2. を使用しています私はtest.company.com
  3. として私のテストホストDNSを設定している
  4. のUbuntu 16.04 LTSを実行しています
  5. 私は私の以前のnginxの構成は...

    ように見えた...私のテストボックスの/ etc/nginxの/ certsの

thisポストからCloudFlareの原点プル証明書をコピーしました

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とリンクをたどっミニマリスト)。 sudo nginx -tを実行するたびに、ssl_certificateとssl_certificate_keyが指定されていないというエラーが発生します。私はCloudFlareから必要なファイルをダウンロードする方法を理解することができず、私が理解するところから、私は必要があるとは思わない。

私はssl_certificateとssl_certificate_keyの両方として再利用するCloudFlareの原点プルCERTしようとした場合、私は私自身の自己署名証明書を作成することが可能であると確信していますが、私のエラーに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_client_certificate属性にSSL秘密鍵を置き、実際のSSL証明書を設定に入れていないように見えます。あなたのnginxののSSLの設定が代わりに以下の行を含める必要があります。

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

をSSL証明書が正しい内容で.pemファイルに対応しており、証明書キーファイルも正しい内容で.KEYファイルが含まれていることを確認してください。

Origin CAを使用して証明書を生成するには、Cloudfalreダッシュボードの[暗号化]セクションに移動します。そこから、[Origin Certificates]セクションの[Create Certificate]ボタンをクリックします。ウィザードの手順を完了すると、証明書ファイルとキーファイルの両方をダウンロードできるウィンドウが表示されます。正しいファイルに入れて、Webサーバーにインストールしてください。

Cloudflare Origin CA Certificate and Key

さらに読書: