IMAPサーバーのSSL証明書
JavaMailを用いてGmailのIMAPサーバーに接続しようとしたのですが、SSLの証明書をキーストアに読み込む必要がありました。ブラウザを使わずにSSL証明書を取得する方法がわからずに少し苦労したのでメモしておきます。
OpenSSLのダウンロード
OpenSSLを用いることで、証明書の内容を表示できます。こちらの内容を参考にしてインストールを行い、パスを通しました。
imap.gmail.comへの接続
s_clientコマンドを使用してimapサーバーに接続します。
以下のように証明書の情報が表示されます(一部省略)。
OpenSSL> s_client -connect imap.gmail.com:993
CONNECTED(00000138)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=imap.gmail.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEgDCCA2igAwIBAgIIJeQIYDQR0i8wDQYJKoZIhvcNAQELBQAwSTELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl
cm5ldCBBdXRob3JpdHkgRzIwHhcNMTcwOTA3MTEwNjE0WhcNMTcxMTMwMTA1NDAw
WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN
TW91bnRhaW4gVmlldzETMBEGA1UECgwKR29vZ2xlIEluYzEXMBUGA1UEAwwOaW1h
cC5nbWFpbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTj3n4
asDt602O14Q2n3XoinQkFnfAdkrezhFTioyuwKVf8bD4xND8H/rxfFUqF5g14p5v
/240s1ww4WftaqrRHXJ2eGyEehcIA1l6DX9UffK9jh+s08nFycZY3iPPmcmRt2kP
msOa9sBF6Eb0sjju7B5j5+ZfpinzhB8Y2PW6xI58glQUh7xkEVwuGLNG+E+AtVi8
Zxf4Mh22cNz2HZoxDxj1x6N4O9lIjx7UMxBMhnDaPiBsfOClOLBTVmxKbUNVTWGM
R/NhGjCBGLdrXIH34JAxXws6RhdAk3hFhnkFUShaL823nVQmLZdvFezxM5KK4HRN
mHF0FTrEtZgF2DVNAgMBAAGjggFLMIIBRzAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
KwYBBQUHAwIwGQYDVR0RBBIwEIIOaW1hcC5nbWFpbC5jb20waAYIKwYBBQUHAQEE
XDBaMCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2dsZS5jb20vR0lBRzIuY3J0
MCsGCCsGAQUFBzABhh9odHRwOi8vY2xpZW50czEuZ29vZ2xlLmNvbS9vY3NwMB0G
A1UdDgQWBBSqFXiwdGEThuRgwhzNgmtXtWlAHTAMBgNVHRMBAf8EAjAAMB8GA1Ud
IwQYMBaAFErdBhYbvPZotXb1gba7Yhq6WoEvMCEGA1UdIAQaMBgwDAYKKwYBBAHW
eQIFATAIBgZngQwBAgIwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3BraS5nb29n
bGUuY29tL0dJQUcyLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAKCZwCCZ4SxjeJhja
oGMnbqux1lSi3uFFpLN0b0FTvWvPWKMJ+YFb5T88OvSTKyhiElFxq8NshaIFYiHf
MBy8IlR78QtftTJsHEhX+E1ozK1WJKjKmmp+DGVR60cPZASzZ9/EZyCdOIi8uHg7
NeDjChxVYN3w9TqT4Gm5S7tRIDCrId7lvbBrAviqtRBdnJ0MlwaOyemc4fqQ9tC7
NRxLyjmfWT8hW1qdc00AWABRJbiCqoz1zwCS//7p1poTYmCuFUHDYwjHeBwwTk22
73R2QCnfN7sPctq48I+vrWF2rwC20J4jDBV69XGTd/HgYwdw15hoSsAx9eDg+Jos
NGyLvw==
-----END CERTIFICATE-----
証明書の作成
表示された結果の、
-----BEGIN CERTIFICATE-----
から
-----END CERTIFICATE-----
までをメモ帳等にコピーし、適当な名前(例:gmailimap.crt)で保存します。これでOKです。
-----BEGIN CERTIFICATE-----と-----END CERTIFICATE-----を含める形で保存する点に注意してください。
おまけ:証明書のインポート
keystoreにインポートする際のコマンドはこちらです。
keytool -import -alias gmail -file gmailimap.crt -keystore key.jks