在最新的几个JavaMail版本中,如果要检查电子邮件服务器的服务器标识,可以在代码中设置JavaMail属性“mail.smtps.ssl.checkserveridentity”。 JavaMail客户端将检查电子邮件服务器证书以防止Man-In-Middle攻击。 (https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html)。
我的问题是,是否有任何JavaMail属性可以设置为检查电子邮件服务器证书是否已通过CRL或OCSP支持被撤销?如果没有,你能以任何方式建议我们这样做吗?
答案 0 :(得分:1)
如果不在JavaMail会话对象中使用属性mail.smtp.ssl.socketFactory
设置特定的SocketFactory,那么JavaMail将获得标准com.sun.mail.util.MailSSLSocketFactory
,并且此SocketFactory可以使用标准TrustManager,当ocsp.enabled
属性设置为 true 时支持OCSP(默认为 false )。
所以,在程序开头添加这一行:
java.security.Security.setProperty("ocsp.enabled", "true");