HAProxy和中级SSL证书问题

我们目前遇到了在Ubuntu AWS群集上validationComodo SSL证书的问题。 浏览器正在显示网站/内容的罚款,并显示所有相关的证书信息(至less,我们已经检查),但某些networking代理和在线SSL检查器显示我们有一个不完整的链。

我们尝试了以下尝试解决此问题:

  1. 升级haproxy到最新的1.5.3
  2. 创build一个包含所有证书(站点,中间,w /和w / out根)的连接“.pem”
  3. 在我们的haproxy.cfg文件的“绑定”行中添加了一个显式的“ca-file”属性。

“.pem”文件使用opensslvalidationOK。 各种中间和根证书已安装并显示在/ etc / ssl / certs中。 但是检查仍然会以不完整的链条返回。

任何人都可以build议我们可以检查的任何其他事情,或者我们可以尝试解决这个问题的其他更改吗?

提前谢谢了…

更新 :从haproxy.cfg唯一相关的行(我相信),是这样的:

bind *:443 ssl crt /etc/ssl/domainaname.com.pem 

更新2 :从openssl s_client输出

 CONNECTED(00000003) depth=0 OU = Domain Control Validated, OU = COMODO SSL, CN = www.domainname.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 OU = Domain Control Validated, OU = COMODO SSL, CN = www.domainname.com verify error:num=27:certificate not trusted verify return:1 depth=0 OU = Domain Control Validated, OU = COMODO SSL, CN = www.domainname.com verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/OU=Domain Control Validated/OU=COMODO SSL/CN=www.domainname.com i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO SSL CA 

以下是www.domainname.com.pem的内容(在haproxyconfiguration中引用)。

 Bag Attributes localKeyID: 01 00 00 00 friendlyName: www.domainname.com subject=/OU=Domain Control Validated/OU=COMODO SSL/CN=www.domainname.com issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO SSL CA -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- -----BEGIN INTERMEDIATE CERTIFICATE----- [...] -----END INTERMEDIATE CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- [...] -----END RSA PRIVATE KEY----- 

正确的顺序包括中间证书:

-----BEGIN PRIVATE KEY----- [Your private key] -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- [Your certificate] -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- [Intermidate#1 certificate] -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- [Intermidate#2 certificate] -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- [Root certificate] -----END CERTIFICATE-----

awk 1 ORS='\\n' ~/your_path/cert.pem

复制string

并像这样粘贴到docker-compose.yml

proxy: image: tutum/haproxy ports: - "80:80" - "443:443" environment: - "DEFAULT_SSL_CERT=-----BEGIN PRIVATE KEY-----\nMIIEvQIBADA......" links: - webapp

这对我有用。

FWIW,我设法达到这个底部。 问题是我用.pem文件中的各种证书的分隔符。

分隔符必须正确-----BEGIN/END CERTIFICATE----- – 没有“中间”或“根”或任何。

另外,为HAProxy工作的.pem包含了我链中的所有中间和根证书 – 似乎是让他们全部接受的唯一方法。