HAProxy 不接受重新颁发的 GeoTrust 证书

HAProxy 不接受重新颁发的 GeoTrust 证书

鉴于 Heartbleed 漏洞,我请求重新颁发 GeoTrust 证书。我们正在启用HAProxy 1.5-dev22OpenSSL。我已在所有受影响的实例上更新了 OpenSSL。

HAProxy 所需的 PEM 是证书、中间证书和私钥的连接版本:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

我可以使用 OpenSSL 验证此 PEM:

$ openssl verify -CAfile my_app.pem my_app.pem
my_app.pem: OK

然后配置HAProxy:

...snip...

bind *:443 ssl crt /etc/ssl/certs/my_app.pem ca-file /etc/ssl/certs/my_app.pem

...snip...

然后启动 HAProxy

$ sudo service haproxy start
 * Starting haproxy haproxy
[ALERT] 098/142005 (13287) : parsing [/etc/haproxy/haproxy.cfg:16] : 'bind *:443' : inconsistencies between private key and certificate loaded from PEM file '/etc/ssl/certs/my_app.pem'.
[ALERT] 098/142005 (13287) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 098/142005 (13287) : Proxy 'secure': no SSL certificate specified for bind '*:443' at [/etc/haproxy/haproxy.cfg:16] (use 'crt').
[ALERT] 098/142005 (13287) : Fatal errors found in configuration.
   ...fail!

我已经重新发行了两次现在和两次 OpenSSL 都可以验证 PEM。但是,HAProxy 似乎无法读取此 PEM。我还用以下代码重新编译了 HAProxy:最新来源但问题仍然存在。

如果我回到以前的 PEM, HAProxy启动无错误

暂时不考虑 HAProxy,根据本网站,我可以验证证书/私钥是否匹配:

(openssl x509 -noout -modulus -in my_app.crt | openssl md5 ; openssl rsa -noout -modulus -in my_app.key | openssl md5) | uniq

当我从 GeoTrust 下载 CRT 后运行它时,输出是单独的值。根据该网站,如果它们匹配,则仅返回一个哈希值。

答案1

哇。我忽略了一个细节,那就是我们通过经销商(Namecheap)购买/重新颁发证书。我曾请求重新颁发证书3次今天,我以为我做了一些奇怪的事情。我打电话给 GeoTrust 询问我的请求。电话里的那个人检查了我发送的所有 3 个 CSR,然后这 3 个文件都与我今天发送的 CSR 文件不同。他建议我们尝试直接通过 GeoTrust 重新发布。果然,它成功了,模数检查返回一个值并匹配!然后我从 CRT/Intermediate CA CRT/Private Key 生成了新的 PEM,HAProxy 现在启动时没有任何问题!

他认为这可能是 Namecheap 从我们帐户的先前实例发送了错误的 CSR 的问题(他以前见过这种情况)。

相关内容