haproxy:从PEM文件加载的私钥和证书之间的不一致

时间:2015-07-08 11:24:46

标签: ssl haproxy

我正在尝试使用为其他服务器签名的证书。我有私钥和证书。

我的PEM文件顺序是:

subject=/C=***/L=*****/O=**********/CN=*********
issuer=/C=***/O=*****Inc/CN=********Secure Server CA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
subject=/C=US/O=******** Inc/CN=********* SHA2 Secure Server CA
issuer=/C=US/O=********* Inc/OU=*********/CN=******** Global Root CA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
subject=/C=US/O=********* Inc/OU=***********/CN=*********** Global Root CA
issuer=/C=US/O=********* Inc/OU=************/CN=******** Global Root CA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----

当我尝试将其部署到我的haproxy时,我收到了此错误。

[ALERT] 188/141626 (2322) : parsing [/etc/haproxy/haproxy.cfg:32] : 'bind *:443' : inconsistencies between private key and certificate loaded from PEM file ................
[ALERT] 188/141626 (2322) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 188/141626 (2322) : Proxy 'www-https': no SSL certificate specified for bind '*:443' at [/etc/haproxy/haproxy.cfg:32] (use 'crt').
[ALERT] 188/141626 (2322) : Fatal errors found in configuration.
Errors in configuration file, check with haproxy check.

我的haproxy版本是:

HA-Proxy version 1.5.2 2014/07/12
Copyright 2000-2014 Willy Tarreau <w@1wt.eu>

我可以使用自签名证书启动我的haproxy。为什么会出现这种不一致?我确信私钥属于证书。

我现在试了几个小时,但我找不到原因。

请帮忙!谢谢!

1 个答案:

答案 0 :(得分:21)

文件中的证书顺序错误。您似乎首先放入中间证书(即Secure Server CA),因此预期该证书是服务器证书。证书的顺序必须是:

  • 服务器证书
  • 服务器私钥(没有任何密码)
  • 中级证书1
  • 中级证书2

在您放置私钥的地方实际上并不重要。但是,证书的顺序严格需要从叶到根,即首先是服务器证书,然后是中间,然后是它的父。基本上,你先把服务器证书,然后是签名者,然后是签名者,......

有关详细信息,请参阅the documentation