情况:
我希望这是可行的:请求来自客户端,通过443端口(ssl)发送到haproxy,然后它必须在80个端口上到达后端。
我有由中间ca ( ca1 )、ca1证书和客户端证书提供的服务器证书。但我没有找到从windows证书颁发机构向haproxy server(ubuntu)请求正确的服务器证书的解决方案。可能是模板的原因。我从windows机器服务器请求证书并将其复制到haproxy。
而且问题是HAProxy日志存在"ssl客户端ca链无法验证“的错误。
配置haproxy:
前端https_frontend bind 192.168.14.167:443 sslv3/etc/ http /cert/request/server.pemca-file/etc/ http /cert/request/CA1-Cericate.pem验证可选crt -忽略-err no-sslv3 3模式http日志/dev/log local7选项httplog use_backend web_server_1 if { ssl_fc_has_crt } default_backend web_server_2后端web_server_1模式选项http httplog服务器w7 192.168.11.109:80检查后端web_server_2模式http选项httplog服务器xp 192.168.13.205:80检查
这个计划行不通。
附加信息:来自winXP的日志,我在这里运行opennssl
C:\openssl-bin 32\bin>openssl s_client -connect haproxy2:443 -cert client.pem -CAfile ca1 1-证书.ca1 -state -showcerts
316:错误:14094418:SSL routines:SSL3_READ_BYTES:tlsv1警报未知ca:.\ssl\s3_pkt.c:1275:SSL警报编号48
316:错误:140790E5:SSL routines:SSL23_WRITE:ssl握手failure:.\ssl\s23_lib.c:184:.cer信息..。验证返回代码: 20 (无法获得本地颁发者证书)
(如果我的英语不好的话,对不起)我读过很多关于它的帖子,但没有找到解决办法。
发布于 2015-02-07 00:35:55
文件server.pem和client.pem应该包含3个部分,如下所示:
-----BEGIN RSA PRIVATE KEY-----
<lots of base64 encoded data>
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<lots of base64 encoded data>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<lots of base64 encoded data>
-----END CERTIFICATE-----私钥可能不是RSA,但应该是第一个。第一个证书是已签名的服务器证书。第二个证书应该是CA证书。您可以使用文本编辑器复制和粘贴每个部分。要检查您的证书,请运行此命令。
$ openssl verify -CAfile ca1-certificate.pem server.pem
server.pem: OKhttps://serverfault.com/questions/631522
复制相似问题