217.6. SSL サポート

基礎となるメールフレームワークは、SSL サポートの提供を担当します。 必要な Java Mail API 設定オプションを完全に指定して SSL/TLS サポートを設定するか、コンポーネントまたはエンドポイント設定を通じて設定済みの SSLContextParameters を提供することができます。

217.6.1. JSSE 設定ユーティリティーの使用

Camel 2.10 の時点で、メールコンポーネントは Camel JSSE Configuration Utility を介した SSL/TLS 設定をサポートしています。  このユーティリティーは、記述する必要があるコンポーネント固有のコードの量を大幅に削減し、エンドポイントおよびコンポーネントレベルで設定できます。  次の例は、メールコンポーネントでユーティリティーを使用する方法を示しています。

エンドポイントのプログラムによる設定

KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource("/users/home/server/truststore.jks");
ksp.setPassword("keystorePassword");
TrustManagersParameters tmp = new TrustManagersParameters();
tmp.setKeyStore(ksp);
SSLContextParameters scp = new SSLContextParameters();
scp.setTrustManagers(tmp);
Registry registry = ...
registry.bind("sslContextParameters", scp);
...
from(...)
    .to("smtps://smtp.google.com?username=user@gmail.com&password=password&sslContextParameters=#sslContextParameters");

エンドポイントの Spring DSL ベースの設定

...
<camel:sslContextParameters id="sslContextParameters">
  <camel:trustManagers>
    <camel:keyStore resource="/users/home/server/truststore.jks" password="keystorePassword"/>
  </camel:trustManagers>
</camel:sslContextParameters>...
...
<to uri="smtps://smtp.google.com?username=user@gmail.com&password=password&sslContextParameters=#sslContextParameters"/>...

217.6.2. JavaMail を直接設定する

Camel は SUN JavaMail を使用します。これは、よく知られている認証局 (デフォルトの JVM 信頼設定) によって発行された証明書のみを信頼します。独自の証明書を発行する場合は、CA 証明書を JVM の Java 信頼/キーストアファイルにインポートし、デフォルトの JVM 信頼/キーストアファイルを上書きする必要があります (詳細については、JavaMail の SSLNOTES.txt を参照してください)。