我正在尝试掌握 Java Mail API 和 TLS 的基础知识。我有以下情况:
有一个使用 TLS 和 SSL 的 STMP 服务器。如果我使用某个客户端登录到此服务器,我可以毫无问题地发送经过身份验证和验证的电子邮件。
然后我尝试在另一台机器上运行一个 Web 服务器,它使用前面提到的 SMTP 服务器发送邮件。我仍然想发送 TLS 和 SSL 电子邮件,但是无论我如何配置启动属性,我都会收到以下众所周知的错误:
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
我发现很多人都有类似的问题,但是我的问题是:
考虑到前面描述的场景,我是否必须为 Web 服务器获取某种证书(可能在 JRE 中的某个地方),或者它是否应该正常工作,因为邮件服务器已经运行了该证书和身份验证机制。不应该只使用 SMTP 服务器的证书吗?无论如何,如果我必须将证书安装到使用 STMP 服务器的机器上,我该如何获得该证书?
我对 JavaMail API 很陌生,我看过很多关于这个的文章,但我找不到我的问题的黑白答案。