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

Ufu*_*rük 10 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-----
Run Code Online (Sandbox Code Playgroud)

当我试图将它部署到我的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.
Run Code Online (Sandbox Code Playgroud)

我的haproxy版本是:

HA-Proxy version 1.5.2 2014/07/12
Copyright 2000-2014 Willy Tarreau <w@1wt.eu>
Run Code Online (Sandbox Code Playgroud)

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

我现在想要几个小时,但我找不到原因.

请帮忙!谢谢!

Hol*_*ust 21

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

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

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

有关更多信息,请参阅文档.

  • 如果此答案无法解决您的问题,您可能希望尝试从私钥中删除密码.它解决了我的问题.要删除密码,请尝试'openssl rsa -in [PRIVATE_KEY_FILE] -out nopassphrase.key' (5认同)
  • 将私钥放在首位是没有问题的.这很好用. (3认同)