【问题标题】:How to generate a PEM file with Openssl using ECDHE-RSA-AES128-GCM-SHA256 cipher如何使用 ECDHE-RSA-AES128-GCM-SHA256 密码通过 Openssl 生成 PEM 文件
【发布时间】:2015-12-31 00:50:19
【问题描述】:

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

我使用以下代码来设置密码列表:

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_ECDHE_RSA_WITH_AES_256_CBC_SHA)

我对此感到困惑,因为我进行了很多测试并阅读了很多信息,但没有得到不同的结果。

感谢任何指导!

【问题讨论】:

  • 根据 Steffen 的回答,只需在主机站点文件中添加以下指令并达到我正在寻找的结果:SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA :ECDHE-RSA-AES256-SHA:DHE-RSA-AE‌​S128-GCM-SHA256

标签: apache ssl encryption


【解决方案1】:

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

【讨论】:

  • 你知道如何在 apache 2.4 中启用它吗?它在配置中启用但服务器不接受它,我在另一台服务器上有完全相同的 apache 配置文件并且这个密码工作,我需要它用于 http2
  • @neoteknic:请不要在评论中提出新问题。除此之外,这里还有很多关于密码设置不起作用的问题,通常是因为使用的库不支持它们,或者因为有不同的配置文件具有不同的设置优先。
  • @SteffenUllrich 您确定证书不涉及服务器使用的密码吗?如果证书不包含 RSA 密钥怎么办? (例如 ECDHE_ECDSA)。在我看来,证书至少对于要选择的密钥交换算法很重要:security.stackexchange.com/questions/8343/…
  • @Bemipefe:请仔细阅读。我没有声称不涉及证书,但密码选择“与证书没有太多关系”。我什至已经解释过,对于这个特定的密码“你只需要一个普通的 RSA 证书”。而且,在 ECDHE(或 DHE)的情况下,证书对于密钥交换根本不重要——两者都适用于 ECDSA 和 RSA 证书。只有在 RSA 密钥交换的情况下,证书的类型才重要,因为这种密钥交换只能使用 RSA 证书来完成。请注意,ECDHE_ECDSA 不是密钥交换,但 ECDHE 是。
猜你喜欢
  • 1970-01-01
  • 2020-07-24
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多