1

SSLソケットを介してポート465のsmtp.gmail.com経由でメールを送信しようとするTomcat5Webアプリケーションがあります。例外が発生します:

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: No trusted certificate found
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
    at javax.mail.Service.connect(Service.java:291)
    at javax.mail.Service.connect(Service.java:172)

Ok。ウェブサイトhttps://www.gmail.comで取得した証明書をキーストアにインポートしようとしました。

keytool -import -trustcacerts -file c:\verising-c3_01.cer

しかし、keytoolは、この証明書はすでに存在していると言っています。Tomcatはデフォルト設定でインストールされ、キーストアを移動しませんでした(キーストアがどこにあるかさえわかりません)。私のjavaMailバージョンは1.4.3、私のjvmバージョンは1.4.2_12です。

4

2 に答える 2

1

デバッグ目的である場合でも、新しいバージョンのJDKを使用して、違いが生じるかどうかを確認すると役立つ場合があります。

おそらく、Tomcat構成がキーストア構成をオーバーライドしているため、使用していると思われるキーストアを使用していません。JavaMailに含まれているSSLNOTES.txtファイルには、SSLデバッグのヒントへのポインタが含まれています。問題の原因を絞り込むのに役立つ場合があります。

于 2012-04-25T22:57:51.423 に答える
1

インポートされた証明書は、キーストアではなくトラストストアに送られます。サーバーがクライアント証明書を必要としない限り、キーストアはまったく必要ありません。クライアント証明書は、メールサーバーではほとんど必要ありません。

于 2012-04-25T23:03:45.460 に答える