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

根据Heartbleed错误,我要求重新颁发GeoTrust证书。 我们使用启用了OpenSSL的HAProxy 1.5-dev22 。 我已经在所有受影响的实例上更新了OpenSSL。

HAProxy要求的PEM是证书,中间证书和私钥的连接版本:

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

我可以用OpenSSLvalidation这个PEM:

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

然后configurationHAProxy:

 ...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都可以validationPEM。 但是,HAProxy似乎无法读取此PEM。 我也重新编译了HAProxy与最新的来源,但问题仍然存在。

如果我恢复到之前的PEM ,HAProxy将无误启动

无视HAProxy一秒钟,根据这个网站 ,我可以validation,如果一个证书/私钥匹配:

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

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

哇。 我省略的一个细节是我们通过经销商(Namecheap)购买/重新签发我们的证书。 我今天要求重新发行证书三次 ,因为我以为我在做一些有趣的事情。 我打电话给GeoTrust并询问了我的要求。 电话里的那个人检查了我发来的所有3个CSR,而这三个CSR都与我今天发送的CSR文件不同 。 他build议我们尝试通过GeoTrust直接进行补发。 果然,它的工作和模数检查返回一个值,并匹配! 然后,我从CRT / Intermediate CA CRT / Private Key生成新的PEM,HAProxy现在开始没有任何问题!

他认为这可能是一个问题,Namecheap从我们账户的以前的实例发送不正确的CSR(他以前见过)。