nginx.conf 上 ssl_ciphers 行的含义

Ben*_*son 7 ssl configuration nginx openssl ssl-certificate

nginx.conf 文件中的以下行是什么意思?

ssl_ciphers HIGH:!aNULL:!MD5;
Run Code Online (Sandbox Code Playgroud)

我知道 ssl 密码指定使用哪种算法来保护服务器通信,我假设 !aNULL 和 !MD5 指定不允许使用这些密码进行通信,但我不知道 HIGH: 指定什么。

Ste*_*ich 12

HIGH、LOW、EXPORT 等是一种包含一系列密码的宏。要获得实际的密码使用openssl ciphers命令,即

 $ openssl ciphers -V 'HIGH:!aNULL:!MD5'
      0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
      0xC0,0x2C - ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
      0xC0,0x28 - ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
      0xC0,0x24 - ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
      ....
Run Code Online (Sandbox Code Playgroud)

由于这些宏的内容因 OpenSSL 版本而异,您应该在服务器系统上使用 OpenSSL 运行此命令。有关密码和宏的更多详细信息,请参阅密码命令手册页