WSO2 API ManagerのSSL証明書の設定は簡単ではありません。これは、キーストアを作成し、SSL証明書をキーストアに追加する必要があるためです。この記事では、Let’sEncrypt証明書を使用してWSO2を設定する方法を説明します。
Let’s Encrypt証明書がすでに発行されており、WSO2キーストアに追加する準備ができていると思います。そうでない場合は、先に進んでドメイン用に1つ入手してください。私の場合、NGINXサーバーにWSO2サービスのフロントエンドを設定していたため、certbot
を使用してLet’sEncrypt証明書を取得しました。 NGINXWebサーバー用のプログラム。
$ sudo certbot --nginx -d tg.com -d www.tg.com
証明書が発行されると、.pem
が見つかります ‘/etc/letsencrypt/live/<domain_name>/
の下のファイル ‘フォルダ。次に、cert.pem
をコピーします およびprivkey.pem
ファイルをホームディレクトリに移動し、以下の手順に従います。
Let'sEncrypt証明書を使用してWSO2を設定する方法
ステップ1:cert.pem
を使用してPKCS12/PFXファイルを作成します およびprivkey.pem
ファイル。
OpenSSLコマンドを使用して、証明書をPKCS12 / PFX形式にエクスポートし、プロンプトが表示されたら強力なパスワードで保護します。
$ openssl pkcs12 -export -in cert.pem -inkey privkey.pem -name "letsencrypt" -out letsencrypt.pfxノート:
-nameオプションは、エイリアスを値として受け取ります。エイリアスには任意の名前を付けることができ、後でWSO2構成ファイルで使用するために必要です。
ステップ2:Javaキーストアを作成する
PFXファイルの準備ができたら、以下のコマンドを使用してJavaキーストアを作成します。
$ keytool -importkeystore -srckeystore letsencrypt.pfx -srcstoretype pkcs12 -destkeystore letsencrypt.jks -deststoretype JKS
上記のコマンドを機能させるには、JDKをインストールする必要があります(もちろん、すでにWSO2セットアップの準備ができています)。コマンドkeytool
bin
内に配置されます JDKのディレクトリ。
上記のコマンドは、ソースキーストアと宛先キーストアの両方のパスワードの入力を求めます。
ステップ3:Javaキーストアファイルから公開鍵をエクスポートします。
WSO2には、パブリックトラストストア(client-truststore.jks
)が付属しています。 ) このファイルは、手順2で作成したJKSファイルの公開鍵で更新する必要があります。
それでは、先に進んで、letsencrypt.jks
から公開鍵をエクスポートしましょう。 ファイル。これを行うには、以下のコマンドを実行します。
$ keytool -export -alias "letsencrypt" -keystore letsencrypt.jks -file letsencrypt.pemノート:
同じエイリアス「letsencrypt
」を使用することを忘れないでください ‘ステップ1で設定したもの。
ステップ4 :letsencrypt.jks
を移動します およびletsencrypt.pem
次のディレクトリにファイルします。
$ cp letsencrypt.jks letsencrypt.pem <WSO2_APIM>/repository/resources/securityノート:
WSO2_APIMは、WSO2インストールディレクトリに置き換える必要があります。
ステップ5: client-truststore.jks
に公開鍵を追加します
$ cd <WSO2_APIM>/repository/resources/security
$ keytool -import -alias letsencrypt -file letsencrypt.pem -keystore client-truststore.jks -storepass wso2carbonノート:
-storepassは値をwso2carbon
として受け取ります 、これはクライアントトラストストアのデフォルトのパスワードです。
ステップ6:WSO2APIManagerを使用してキーストアを構成します。
手順2で作成した新しいキーストアを使用してWSO2APIManagerを構成します。これを行うには、次のファイルを編集する必要があります。
WSO2の一部のバージョンには、carbon.xml
が必要です。 編集するファイルですが、最新バージョンに必要なのはdeployment.toml
だけです。 変更するファイル(WSO2が構成モデルを簡素化することに成功したため)
$ vi <WSO2_APIM>/repository/conf/carbon.xml
<KeyStore>
を探してください タグを付けて、以下に置き換えます。
<KeyStore> <!-- Keystore file location--> <Location>${carbon.home}/repository/resources/security/letsencrypt.jks</Location> <!-- Keystore type (JKS/PKCS12 etc.)--> <Type>JKS</Type> <!-- Keystore password--> <Password><Keystore password></Password> <!-- Private Key alias--> <KeyAlias>letsencrypt</KeyAlias> <!-- Private Key password--> <KeyPassword><Keystore password></KeyPassword> </KeyStore>ノート:
手順2でJKSファイルを作成するときに、同じキーストアパスワードとエイリアスセットを使用することを忘れないでください
deployment.toml
を変更します 新しいキーストアの詳細を含むファイル:
$vi <WSO2_APIM>/repository/conf/deployment.toml
[keystore.tls] file_name = "letsencrypt.jks" type = "JKS" password = "<Keystore password>" alias = "letsencrypt" key_password = "<Keystore password>"
deployment.toml
を変更すると思います 十分なはずです。ただし、すぐに機能しない場合は、以下のファイルを編集できます(古いバージョンのWSO2 API Managerで必要になる可能性があります)。
$ cd <WSO2_APIM>/repository/conf/ $ grep -rn "*.jks"
リストされているすべてのファイルを、関連するキーストアエントリで編集します。
次に、WSO2サーバーを再起動します。
$ <WSO_APIM>/bin/api-manager.sh --restart
ステップ7 :Carbonインターフェースにログインし、新しいキーストアが正常に追加されたかどうかを確認します。 Keystores > List.
ステップ8: キーストアが見つからない場合は、Keystores > Add
をクリックして手動で追加できます。 。
それでおしまい!ブラウザのアドレスバーのWSO2URLの横に緑色の錠前が表示されます。
それでも、問題がありますか?次の参考資料を確認する必要があるかもしれません。
- 有効な証明書を使用してWSO2を設定する
- SSL証明書をWSO2キーストアにインポートする