Das Einrichten eines SSL-Zertifikats für WSO2 API Manager ist nicht einfach, da es das Erstellen eines Schlüsselspeichers und das Hinzufügen eines SSL-Zertifikats zum Schlüsselspeicher erfordert. In diesem Artikel erfahren Sie, wie Sie WSO2 mit dem Let’s Encrypt-Zertifikat einrichten.
Ich gehe davon aus, dass Sie das Let’s Encrypt-Zertifikat bereits ausgestellt haben und bereit sind, es zu den WSO2-Keystores hinzuzufügen. Wenn nicht, besorgen Sie sich einen für Ihre Domain. In meinem Fall hatte ich den NGINX-Server als Front-End für die WSO2-Dienste, daher hatte ich das Let’s Encrypt-Zertifikat mit dem certbot
erhalten Programm für NGINX-Webserver.
$ sudo certbot --nginx -d tg.com -d www.tg.com
Sobald das Zertifikat ausgestellt ist, finden Sie .pem
Dateien unter „/etc/letsencrypt/live/<domain_name>/
' Mappe. Kopieren Sie nun die cert.pem
und privkey.pem
Dateien in Ihr Home-Verzeichnis und befolgen Sie die nachstehenden Schritte.
Wie richte ich WSO2 mit dem Let’s Encrypt-Zertifikat ein?
Schritt 1:PKCS12/PFX-Datei mit cert.pem
erstellen und privkey.pem
Dateien.
Wir werden den OpenSSL-Befehl verwenden, um Zertifikate in das PKCS12/PFX-Format zu exportieren und sie bei Aufforderung mit einem starken Passwort zu sichern.
$ openssl pkcs12 -export -in cert.pem -inkey privkey.pem -name "letsencrypt" -out letsencrypt.pfxNotiz:
-name-Option nimmt Alias als Wert. Der Alias kann ein beliebiger Name sein und wird später für die Verwendung in den WSO2-Konfigurationsdateien benötigt.
Schritt 2:Java-Schlüsselspeicher erstellen
Sobald Sie die PFX-Datei bereit haben, erstellen Sie den Java Keystore mit dem folgenden Befehl.
$ keytool -importkeystore -srckeystore letsencrypt.pfx -srcstoretype pkcs12 -destkeystore letsencrypt.jks -deststoretype JKS
Damit der obige Befehl funktioniert, müssen Sie JDK installiert haben (natürlich haben Sie bereits WSO2 Setup bereit). Der Befehl keytool
würde sich in bin
befinden Verzeichnis des JDK.
Der obige Befehl fordert zur Eingabe des Passworts sowohl des Quell-Keystores als auch des Ziel-Keystores auf.
Schritt 3:Exportieren Sie den öffentlichen Schlüssel aus der Java Keystore-Datei.
WSO2 enthält den öffentlichen Truststore (client-truststore.jks
) und diese Datei muss mit dem öffentlichen Schlüssel der in Schritt 2 erstellten JKS-Datei aktualisiert werden.
Machen wir also weiter und exportieren den öffentlichen Schlüssel aus letsencrypt.jks
Datei. Führen Sie dazu den folgenden Befehl aus.
$ keytool -export -alias "letsencrypt" -keystore letsencrypt.jks -file letsencrypt.pemNotiz:
Denken Sie daran, denselben Alias „letsencrypt
“ zu verwenden ‘, die Sie in Schritt 1 festgelegt hatten.
Schritt 4 :Verschieben Sie letsencrypt.jks
und letsencrypt.pem
Dateien in das folgende Verzeichnis.
$ cp letsencrypt.jks letsencrypt.pem <WSO2_APIM>/repository/resources/securityNotiz:
WSO2_APIM sollte durch das WSO2-Installationsverzeichnis ersetzt werden.
Schritt 5: Fügen Sie einen öffentlichen Schlüssel zu client-truststore.jks
hinzu
$ cd <WSO2_APIM>/repository/resources/security
$ keytool -import -alias letsencrypt -file letsencrypt.pem -keystore client-truststore.jks -storepass wso2carbonNotiz:
-storepass nimmt den Wert als wso2carbon
an , das das Standardkennwort des Client-Truststores ist.
Schritt 6:Konfigurieren Sie den Keystore mit WSO2 API Manager.
Konfigurieren Sie den WSO2 API Manager mit dem in Schritt 2 erstellten neuen Schlüsselspeicher. Dazu müssen die folgenden Dateien bearbeitet werden.
Einige Versionen von WSO2 erfordern carbon.xml
Datei bearbeitet werden, aber die neuesten Versionen benötigen nur die deployment.toml
Datei geändert werden (da WSO2 es geschafft hat, das Konfigurationsmodell zu vereinfachen).
$ vi <WSO2_APIM>/repository/conf/carbon.xml
Suchen Sie nach <KeyStore>
-Tag und ersetzen Sie es durch das folgende.
<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>Notiz:
Denken Sie daran, beim Erstellen der JKS-Datei in Schritt 2 dasselbe Keystore-Passwort und denselben Aliassatz zu verwenden
Ändern Sie die deployment.toml
Datei mit den Details des neuen Schlüsselspeichers:
$vi <WSO2_APIM>/repository/conf/deployment.toml
[keystore.tls] file_name = "letsencrypt.jks" type = "JKS" password = "<Keystore password>" alias = "letsencrypt" key_password = "<Keystore password>"
Ich nehme an, deployment.toml
zu ändern sollte genügen. Wenn die Dinge jedoch nicht sofort funktionieren, können Sie die folgenden Dateien bearbeiten (wahrscheinlich erforderlich für die älteren Versionen von WSO2 API Manager).
$ cd <WSO2_APIM>/repository/conf/ $ grep -rn "*.jks"
Bearbeiten Sie alle aufgelisteten Dateien mit den relevanten Keystore-Einträgen.
Fahren Sie jetzt fort und starten Sie den WSO2-Server neu.
$ <WSO_APIM>/bin/api-manager.sh --restart
Schritt 7 :Melden Sie sich an der Carbon-Oberfläche an und prüfen Sie, ob der neue Keystore erfolgreich hinzugefügt wurde. Klicken Sie auf Keystores > List.
Schritt 8: Wenn Sie den Schlüsselspeicher nicht finden, können Sie ihn manuell hinzufügen, indem Sie auf Keystores > Add
klicken .
Das ist es! Sie sehen nun das grüne Vorhängeschloss neben der WSO2-URL in der Adressleiste des Browsers.
Haben Sie trotzdem Probleme? Möglicherweise müssen Sie sich die folgenden Referenzen ansehen.
- WSO2 mit einem gültigen Zertifikat einrichten
- SSL-Zertifikat in WSO2-Keystores importieren