在jenkins中配置电子邮件时遇到的问题

在jenkins中配置电子邮件时遇到的问题,jenkins,Jenkins,我已经尝试过堆栈溢出上提供的所有解决方案,如添加跳过插件或在密钥库中添加证书,但测试电子邮件仍然失败,出现以下错误,有人能帮我解决吗。我正在使用一台windows计算机 Error in jenkins:sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider

我已经尝试过堆栈溢出上提供的所有解决方案,如添加跳过插件或在密钥库中添加证书,但测试电子邮件仍然失败,出现以下错误,有人能帮我解决吗。我正在使用一台windows计算机

Error in jenkins:sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
    at java.security.cert.CertPathBuilder.build(Unknown Source)
Caused: sun.security.validator.ValidatorException: PKIX path building failed
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
    <snip>
Caused: javax.net.ssl.SSLHandshakeException
    at sun.security.ssl.Alerts.getSSLException(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
    <snip>
Caused: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
  nested exception is:
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
    at javax.mail.Service.connect(Service.java:317)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:125)
    at javax.mail.Transport.send0(Transport.java:194)
    at javax.mail.Transport.send(Transport.java:124)
    at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:585)
    <snip>
jenkins中的
错误:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径
位于sun.security.provider.certpath.SunCertPathBuilder.build(未知源)
位于sun.security.provider.certpath.SunCertPathBuilder.engineBuild(未知源)
位于java.security.cert.CertPathBuilder.build(未知源)
原因:sun.security.validator.validator异常:PKIX路径生成失败
位于sun.security.validator.PKIXValidator.doBuild(未知源)
位于sun.security.validator.PKIXValidator.engineValidate(未知源)
导致:javax.net.ssl.SSLHandshakeException
位于sun.security.ssl.Alerts.getSSLException(未知源)
位于sun.security.ssl.SSLSocketImpl.fatal(未知源)
原因:javax.mail.MessaginException:无法连接到SMTP主机:SMTP.gmail.com,端口:465;
嵌套异常是:
javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径
在com.sun.mail.smtp.SMTPTransport.openServer上(SMTPTransport.java:1934)
在com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)上
在javax.mail.Service.connect(Service.java:317)
在javax.mail.Service.connect(Service.java:176)
在javax.mail.Service.connect(Service.java:125)
在javax.mail.Transport.send0(Transport.java:194)
在javax.mail.Transport.send(Transport.java:124)
位于hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:585)
cmd提示符表示别名下的密钥库中已存在证书。

转到
https:///systemInfo
并查找
javax.net.ssl.trustStore
。 这应该是应该添加证书的信任库

您可以使用keytool打开密钥库,或者如果您喜欢GUI,请查看


信任库的默认密码是
changeit

,看起来您正试图通过Gmail的SMTP服务器发送电子邮件。Java的最新版本应该已经信任谷歌的服务器了。您是否在运行Jenkins的计算机上安装了SSL解包防火墙/代理或SSL解包防病毒软件?您正在运行什么版本的Java?Java版本“1.8.0_181”Java(TM)SE运行时环境(build 1.8.0_181-b13)Java HotSpot(TM)64位服务器虚拟机(build 25.181-b13,混合模式)我对jenkin很陌生,您能解释一下我是如何执行此操作的吗:“SSL展开防火墙/代理已就位或运行Jenkins的计算机上安装了SSL展开防病毒软件“SSL解包是一些安全应用程序和恶意软件用来检查加密流量的行为。基本上,它代表您连接到真正的服务器,然后让您连接到它,就像您连接到真正的服务器一样。您通常可以根据服务器回复的证书来判断。您能否使用此命令的输出更新您的问题:
openssl s_client-showcerts-connect smtp.gmail.com:465
?您可以获得Windows的openssl。对于私人托管SMTP服务器的自签名证书,这绝对是正确的答案。不过OP正在连接Gmail,Gmail应该已经有了一个可信的证书。这个答案会起作用,但可能会掩盖一个安全问题。如果用户有一个带有SSL拦截的代理,这也可能是正确的答案。公司IT通常只在提供的java中安装附加证书,而不在已安装的软件中安装。同意,如果问题是SSL拦截,只要预期SSL拦截,这就是正确答案。