みなさんこんにちは。
今日、私たちの目標は、PCIコンプライアンスに向けてNginxを準備することです。 具体的には、SSLプロトコルと暗号化。 まあ、または単にSSL接続のセキュリティを強化し、脆弱性を取り除くためです。
必要なのは、設定の一部をこのフォームに取り込むことだけです:)
ssl_certificate /etc/nginx/card.pem; ssl_certificate_key /etc/nginx/card.key; ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH; ssl_session_cache shared:SSL:10m; ssl_prefer_server_ciphers on;
ただし、いくつかの詳細を追加し、ポイントを検討します。
nginxの最新バージョンを使用している場合、ほとんどの場合、デフォルトで「強力な」暗号が使用されます。 それでも、デフォルト値をわずかに変更します。
ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH;
RC4-SHAは脆弱性に対して脆弱であるため、CBCモードの暗号よりRC4-SHAを優先するためにこれを行います。
次のコマンドで暗号の完全なリストを表示できます。
openssl ciphers
BEAST攻撃
CVE-2011-3389の可能性を排除し
ます 。
ssl_prefer_server_ciphers on;
SSLセッションのキャッシュを接続します。これにより、繰り返し接続中の永続的なSSLハンドシェイクから保護され、最終テストでいくつかのポイントが追加されます。 約4,000セッションが1メガバイトのキャッシュに収まります。
ssl_session_cache shared:SSL:10m;
バージョン0.7.64、0.8.18以前の場合、SSLv2を無効にするために追加する必要があります。
ssl_protocols SSLv3 TLSv1;
バージョン0.7.65、0.8.19以降では、SSLv3、TLSv1、TLSv1.1、およびTLSv1.2がデフォルトのSSLプロトコルであり、私たちにぴったりです。
SSL Labsからテストに行き、「Grade A」と「PCI Compliance Yes」を取得します。
www.ssllabs.com/ssltest便利なリンク:
Nginx.org HTTPSサーバーの構成SSL / TLS展開のベストプラクティスSSLサーバー評価ガイドUPD:
RC4の脆弱性が見つかったため(
http://blog.cryptographyengineering.com/2013/03/attack-of-week-rc4-is-kind-of-broken-in.html )、ありがとう
alist 、OpenSSLをバージョンに更新することをお勧めします1.0.1。GCMおよびTLS 1.2がサポートされています。 今のところ、私たちができることはこれだけで、ブラウザからのアクションを待ちます。