我正在尝试使用 haproxy 保护域名。当我加载 URL:bitbucket.kl.company.com 时,出现错误:
bitbucket.kl.company.com uses an invalid security certificate.
This certificate is only valid for the following names:
*.company.com, company.com, bitbucket-mirror.company.com
Error Code: SSL_ERROR_BAD_CERT_DOMAIN
现在,如果我进入服务器并执行以下操作:
openssl x509 -text -noout -in /etc/haproxy/certs/cert.pem | grep DNS
DNS:*.company.com, DNS:company.com, DNS:bitbucket.kl.company.com
我联系了颁发证书的 Digicert,他们说服务器颁发了错误的证书。
在我的 haproxy.cfg 中我有:
frontend bitbucket_http_frontend
bind *:80
bind *:443 ssl crt /etc/haproxy/certs/cert.pem ciphers HIGH:!aNULL:!MD5
redirect scheme https code 301 if !{ ssl_fc }
default_backend bitbucket_http_backend
这出现正在发生的事……
haproxy 正在从内部颁发其他证书/etc/haproxy/certs
我没有想到或者要求它这样做,但这是唯一有意义的结论,除非它首先查看一个默认位置。
答案1
这是由于过时的 haproxy 进程在没有“systemctl”的情况下启动,并且已经运行了 3 个月。它正在为早已被删除的 pem 文件颁发证书。
我以为可能会发生端口冲突或类似的问题,但事实并非如此。haproxy 也没有任何抱怨。
答案2
首先你必须停止 haproxy 服务:
sudo service haproxy stop
之后,终止所有与 HAProxy 相关的进程:
ps aux | grep haproxy
user_1 3648060 0.0 0.0 ...
user_root 3680653 0.0 0.0 ...
终止所有进程:
kill -9 <process id>
kill -9 3648060
kill -9 3680653
最后,重新启动 HAProxy 服务并查看日志:
sudo service haproxy start
tail -f /var/log/haproxy.log