web-dev-qa-db-ja.com

NginxでTLS 1.2を有効にする方法は?

Ubuntu 12.04サーバーでSSL接続のTLS 1.1および1.2を有効にするにはどうすればよいですか?私は次のバージョンのnginxとopensslライブラリを使用しています。

$ ./nginx -v
nginx version: nginx/1.2.3

$ openssl version -a
OpenSSL 1.0.1 14 Mar 2012
built on: Tue Jun  4 07:26:06 UTC 2013
platform: debian-AMD64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"
17
codefx

まず、nginx.confでSSL/TLSを有効にする必要があります。

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.org;

    ssl_certificate /etc/ssl/example.org.crt;
    ssl_certificate_key /etc/ssl/private/example.org.key;

2つのlisten行は、IPv4およびIPv6接続でSSLを有効にします。 IPv6がない場合は、2番目のlisten行を省略できます。

サーバー証明書は/etc/sslにあると想定しています。別のパスを使用する場合は、最後の2行を変更します。

ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

これにより、さまざまなTLSバージョンが有効になります。現在のブラウザはすべてTLS1.2を使用できます。古いブラウザの場合、 小さな設定で安全な設定を有効にする を書きました。

ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA;
ssl_prefer_server_ciphers on;

最初の行は、nignxが使用する暗号を設定します。 2行目は、サーバー(クライアントではなく)側の暗号スイートを優先します。そのため、強力な(er)暗号を使用できます。

完了したら、nginxはTLS1.2を使用する必要があります。必要に応じて、 add にサイトを TLS1.2の殿堂 に追加し、誇りに思うことができます。 ;)

ただし、設定を改善する方法はいくつかあります。 ドイツ語の安全なnginx設定ガイド に従います。

14
qbi

Nginxの後続のバージョンで対処されたセキュリティ勧告が多数あります。この状況がまだ続く場合(6か月前の投稿ですか?)、アップグレードを真剣に検討してください。 Webサーバー自体が安全でない場合、TLS設定は重要ではありません。詳細については、 http://nginx.org/en/security_advisories.html を参照してください。

何らかの理由でこのバージョンのnginxを実行する必要がある場合、nginx(またはApache)で強力な暗号スイートを有効にするために利用できる情報はおそらく役立つでしょう。 https://community.qualys.com/blogs/securitylabs/ 2013/08/05/configuring-Apache-nginx-and-openssl-for-forward-secrecy

1
Luno

Ubuntu 12.04サーバーでSSL接続のTLS 1.1および1.2を有効にするにはどうすればよいですか?

3つの選択肢があると思います。

まず、何もせずにUbuntu 12のOpenSSLバージョンを使用します。 TLS 1.1は現在サポートされていると思いますが、TLS 1.2はまだありません。

次に、独自の PPA を構築して維持します。 カスタムパッケージでディストリビューションパッケージをオーバーライドしますか? で完全なプロトコルを提供する既存の buntuおよびOpenSSLの個人パッケージアーカイブ には、そのための手順があります。

3つ目は、Ubuntu 14などのUbuntuの新しいバージョンへのアップグレードです。現在、Ubuntu 14でそれらがすべて有効になっているかどうかを確認しようとしています。 buntu 14、OpenSSL、およびTLSプロトコル? を参照してください。

0
user207039