Haproxy不会识别新证书

时间:2017-09-04 15:47:43

标签: ssl-certificate haproxy lets-encrypt

我最近将证书更改为LetsEncrypt。

我将新证书放在旧证书的位置:

i

cat /etc/haproxy/certs/fullchain.pem /etc/haproxy/certs/privkey.pem > /etc/haproxy/certs/mydomain.com.pem 我有:

haproxy.cfg

然后我运行了frontend https bind :::8443 v4v6 ssl crt /etc/haproxy/certs/mydomain.com.pem no-sslv3 ,但是当我在浏览器中访问它或使用SSLLabs时,它仍然会带来旧版本。

如果我使用systemctl reload haproxy,则会显示正确的证书。

3 个答案:

答案 0 :(得分:3)

我有同样的问题,即使重新加载配置后,haproxy会随机提供旧证书。在环顾了好几天后,问题是“重新加载”操作创建了一个新进程而没有杀死旧进程。通过“ps aux | grep haproxy”确认。

<强>修正 如果您的环境允许几秒钟的停机时间,请运行“service haproxy stop”直到没有haproxy进程,然后启动haproxy。

                                       **OR**

按开始时间排序并终止旧进程,同时检查服务是否仍然在两者之间运行。

答案 1 :(得分:1)

如果/ etc / haproxy / certs中有旧的pem文件,HAproxy可能正在使用它而不是新的。

我有类似的问题。 HAproxy正在使用最初为dev.domain.com创建的过期证书和Let's Encrypt。后来我更改了证书创建过程以包含多个域: domain.dom www.domain.com和dev.domain.com。 旧的dev.domain.com.pem仍在/ etc / haproxy / certs文件夹中。当我访问https://dev.domain.com时,HAproxy使用了旧的pem证书文件,Chrome发出了过期证书的警告。 当我删除dev.domain.com.pem文件并重新加载HAproxy时,它开始使用新证书并且SSL再次正常工作。

答案 2 :(得分:0)

我的问题是历史悠久且过时的通配符证书,它在浏览器和cURL中都错误地将HAProxy(HA-Proxy version 1.8.19-1+deb10u3 2020/08/01)拾起并作为过期的子域证书吐出。

重新加载,重新启动,停止+启动甚至升级Debian都无济于事。这样做的帮助是删除过时的通配符证书并重新加载