我的构建从今天下午开始失败,原因是:
Notice: /Stage[main]/Server_init::Apt_get_update/Exec[apt-get-update]/returns:
Err:16 https://apt.puppetlabs.com bionic Release
Notice: /Stage[main]/Server_init::Apt_get_update/Exec[apt-get-update]/returns:
Certificate verification failed: The certificate is NOT trusted.
The certificate chain uses expired certificate. Could not handshake:
Error in the certificate verification. [IP: 13.33.171.122 443]
由于早先成功的构建,我认为已过期的证书今天早上已过期。
我如何找出哪个证书失败了?我可以做些什么来使其更新。这表示它是链中的某些证书,我认为这意味着它不一定是apt.puppetlabs.com的证书。
我暂时是否有办法告诉我忽略此存储库上的证书,以便我可以继续处理票证而不是此新错误?
也许有一种更方便的方法,但这是我在证书链中发现断开链接的方法:
openssl s_client </dev/null -showcerts -connect apt.puppetlabs.com:443 -servername apt.puppetlabs.com | awk 'BEGIN { pem_to_text = "openssl x509 -noout -text" }; /BEGIN CERTIFICATE/ { on = 1 }; on == 1 { print $0 | pem_to_text }; /END CERTIFICATE/ { on = 0; close(pem_to_text) }'
在撰写本文时,链(CN = USERTrust RSA Certification Authority
)中的证书之一已于2020年5月30日10:48:38 GMT到期。
但是请注意,在较新的操作系统版本(如Ubuntu 20.04)上,该问题不会导致错误,因为ca-certificates
软件包包含针对同一实体和公钥的更新证书,该证书的有效期至1月18日:59:59 2038 GMT。