Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何使用ECDHE-RSA-AES128-GCM-SHA256密码使用Openssl生成PEM文件_Apache_Ssl_Encryption - Fatal编程技术网

Apache 如何使用ECDHE-RSA-AES128-GCM-SHA256密码使用Openssl生成PEM文件

Apache 如何使用ECDHE-RSA-AES128-GCM-SHA256密码使用Openssl生成PEM文件,apache,ssl,encryption,Apache,Ssl,Encryption,我一直在尝试为ApacheWeb服务器创建一个密钥和证书,而不是包含一个https站点。我一直在使用Openssl(版本1.0.1f、g、h、I、q、t),无法使用密码套件ECDHE-RSA-AES128-GCM-SHA256创建证书 我使用folliwing代码设置密码列表: openssl ciphers -v 'kEECDH+ECDSA kEDH +RSA !aNULL !eNULL !LOW !3DES !DES !RC2 !RC4 !EXP !DSS !IDEA !SRP !kECDH

我一直在尝试为ApacheWeb服务器创建一个密钥和证书,而不是包含一个https站点。我一直在使用Openssl(版本1.0.1f、g、h、I、q、t),无法使用密码套件ECDHE-RSA-AES128-GCM-SHA256创建证书

我使用folliwing代码设置密码列表:

openssl ciphers -v 'kEECDH+ECDSA kEDH +RSA !aNULL !eNULL !LOW !3DES !DES !RC2 !RC4 !EXP !DSS !IDEA !SRP !kECDH !MD5 !SEED !PSK !CAMELLIA'
结果是:

ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA256
ECDHE-ECDSA-AES128-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA256
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
之后,我一直在使用以下命令生成证书:

Step 1
openssl genpkey -algorithm RSA -outform PEM -out my-site.pem -pkeyopt rsa_keygen_bits:2048

Step 2
openssl req -new -sha256 -key my-site.pem -out my-site.csr

Step 3
openssl x509 -req -sha256 -days 1825 -in my-site.csr -signkey my-site.pem -out my-site.crt
当我在apache上安装所有文件,重新启动服务器,然后使用Mozilla检查结果时,我得到以下结果:

加密连接(TLS\u ECDHE\u RSA\u带AES\u 256\u CBC\u SHA)

我对此感到困惑,因为我做了很多测试,阅读了很多信息,却没有得到不同的结果


我感谢任何指导

服务器使用的密码与证书没有多大关系。对于ECDHE-RSA-AES128-GCM-SHA256,您只需要生成的普通RSA证书。密码的其他部分描述了密钥交换(ECDHE)、对称加密算法和HMAC(AES128-GCM-SHA256)。这些部分取决于服务器配置和客户端的功能,但不取决于证书。

根据Steffen的回答,只需在主机站点文件中添加以下说明,即可获得我想要的结果:SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AE‌​S128-GCM-SHA256您知道如何在apache 2.4中启用它吗?它是在配置中启用的,但服务器不接受它,我在另一台服务器上有完全相同的apache配置文件,这个密码工作,我需要它http2@neoteknic:请不要在评论中提出新问题。除此之外,这里还有很多关于密码设置不起作用的问题,通常是因为所使用的库不支持这些设置,或者因为有一个不同的配置文件具有不同的优先设置。@SteffenUllrich您确定服务器使用的密码中没有涉及证书吗?如果证书不包含RSA密钥怎么办?(例如ECDHE_ECDSA)。在我看来,证书至少对要选择的密钥交换算法很重要:@Bemipefe:请仔细阅读。我并没有声称证书不涉及,但密码选择与证书“没有多大关系”。我甚至解释过,对于这个特定的密码,“您只需要一个普通的RSA证书”。而且,在ECDHE(或DHE)的情况下,证书对于密钥交换根本不重要——两者都可以使用ECDSA和RSA证书。只有在RSA密钥交换的情况下,证书的类型才重要,因为此密钥交换只能通过RSA证书完成。请注意,ECDHE_ECDSA不是密钥交换,但ECDHE是。