GNU/Linux >> Linux の 問題 >  >> Linux

Let’sEncrypt証明書を使用してWSO2を設定する方法

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で設定したもの。

ステップ4letsencrypt.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キーストアにインポートする

Linux
  1. Ubuntu18.04でLet'sEncryptを使用してNginxを保護する-その方法は?

  2. CentOS7にApacheでLet'sEncryptをインストールする方法

  3. Ubuntu20.04でLet'sEncryptを使用してNginxを保護する方法

  1. Lets Encrypt SSL/TLS証明書をcertbotで管理する方法

  2. Debian 11 に Let’s Encrypt SSL を Apache でインストールする方法

  3. SSL It! で無料の SSL 証明書を取得する方法Plesk で暗号化しましょう

  1. セットアップ方法CentOS8/RHEL8およびCentOS7/RHEL7でNginxを使用してSSL証明書を暗号化しましょう

  2. セットアップ方法CentOS8/RHEL8およびCentOS7/RHEL7でApacheを使用してSSL証明書を暗号化しましょう

  3. セットアップ方法Debian10/Debian9でNginxを使用してSSL証明書を暗号化しましょう