Nastavení certifikátu SSL pro WSO2 API Manager není jednoduché, protože vyžaduje vytvoření úložiště klíčů a přidání certifikátu SSL do úložiště klíčů. V tomto článku uvidíme, jak nastavit WSO2 s certifikátem Let’s Encrypt.
Předpokládám, že již máte vydaný certifikát Let’s Encrypt a jste připraveni jej přidat do WSO2 Keystores. Pokud ne, pokračujte a pořiďte si jeden pro svou doménu. V mém případě jsem měl server NGINX jako front-end služby WSO2, a proto jsem získal certifikát Let’s Encrypt pomocí certbot
program pro webový server NGINX.
$ sudo certbot --nginx -d tg.com -d www.tg.com
Jakmile je certifikát vydán, najdete .pem
soubory pod ‘/etc/letsencrypt/live/<domain_name>/
‘ složka. Nyní zkopírujte cert.pem
a privkey.pem
soubory do vašeho domovského adresáře a postupujte podle níže uvedených kroků.
Jak nastavit WSO2 s certifikátem Let’s Encrypt?
Krok 1:Vytvořte soubor PKCS12/PFX pomocí cert.pem
a privkey.pem
soubory.
Příkaz OpenSSL použijeme k exportu certifikátů do formátu PKCS12/PFX a na výzvu jej zabezpečíme silným heslem.
$ openssl pkcs12 -export -in cert.pem -inkey privkey.pem -name "letsencrypt" -out letsencrypt.pfxPoznámka:
Volba -name přebírá alias jako hodnotu. Alias může být jakýkoli název a je vyžadován pro pozdější použití v konfiguračních souborech WSO2.
Krok 2:Vytvoření úložiště klíčů Java
Jakmile budete mít soubor PFX připravený, vytvořte úložiště klíčů Java pomocí níže uvedeného příkazu.
$ keytool -importkeystore -srckeystore letsencrypt.pfx -srcstoretype pkcs12 -destkeystore letsencrypt.jks -deststoretype JKS
Aby výše uvedený příkaz fungoval, musíte mít nainstalovaný JDK (samozřejmě již máte připravený WSO2 Setup). Příkaz keytool
bude umístěn uvnitř bin
adresář JDK.
Výše uvedený příkaz vás vyzve k zadání hesla jak zdrojového, tak cílového úložiště klíčů.
Krok 3:Exportujte veřejný klíč ze souboru úložiště klíčů Java.
WSO2 přichází s veřejným úložištěm důvěryhodnosti (client-truststore.jks
) a tento soubor je třeba aktualizovat pomocí veřejného klíče souboru JKS vytvořeného v kroku 2.
Pojďme tedy do toho a exportujeme veřejný klíč z letsencrypt.jks
soubor. Chcete-li to provést, spusťte níže uvedený příkaz.
$ keytool -export -alias "letsencrypt" -keystore letsencrypt.jks -file letsencrypt.pemPoznámka:
Nezapomeňte použít stejný alias „letsencrypt
‘, kterou jste nastavili v kroku 1.
Krok 4 :Přesunout letsencrypt.jks
a letsencrypt.pem
soubory do následujícího adresáře.
$ cp letsencrypt.jks letsencrypt.pem <WSO2_APIM>/repository/resources/securityPoznámka:
WSO2_APIM by měl být nahrazen instalačním adresářem WSO2.
Krok 5: Přidejte veřejný klíč do client-truststore.jks
$ cd <WSO2_APIM>/repository/resources/security
$ keytool -import -alias letsencrypt -file letsencrypt.pem -keystore client-truststore.jks -storepass wso2carbonPoznámka:
-storepass převezme hodnotu jako wso2carbon
, což je výchozí heslo klientského důvěryhodného úložiště.
Krok 6:Nakonfigurujte úložiště klíčů pomocí Správce API WSO2.
Nakonfigurujte WSO2 API Manager pomocí nového úložiště klíčů vytvořeného v kroku 2. K tomu je třeba upravit následující soubory.
Některé verze WSO2 vyžadují carbon.xml
soubor, který chcete upravit, ale nejnovější verze potřebují pouze deployment.toml
soubor, který má být změněn (protože WSO2 dokázalo zjednodušit konfigurační model).
$ vi <WSO2_APIM>/repository/conf/carbon.xml
Vyhledejte <KeyStore>
tag a nahraďte jej níže uvedeným.
<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>Poznámka:
Nezapomeňte použít stejné heslo úložiště klíčů a nastavený alias při vytváření souboru JKS v kroku 2
Změňte deployment.toml
soubor s podrobnostmi o novém úložišti klíčů:
$vi <WSO2_APIM>/repository/conf/deployment.toml
[keystore.tls] file_name = "letsencrypt.jks" type = "JKS" password = "<Keystore password>" alias = "letsencrypt" key_password = "<Keystore password>"
Předpokládám, že upravím deployment.toml
by mělo stačit. Pokud však věci nefungují okamžitě, můžete upravit níže uvedené soubory (pravděpodobně vyžadováno pro starší verze WSO2 API Manager).
$ cd <WSO2_APIM>/repository/conf/ $ grep -rn "*.jks"
Upravte všechny uvedené soubory pomocí příslušných položek úložiště klíčů.
Nyní pokračujte a restartujte server WSO2.
$ <WSO_APIM>/bin/api-manager.sh --restart
Krok 7 :Přihlaste se do rozhraní Carbon a zkontrolujte, zda bylo nové úložiště klíčů úspěšně přidáno. Klikněte na Keystores > List.
Krok 8: Pokud úložiště klíčů nenajdete, můžete jej přidat ručně kliknutím na Keystores > Add
.
A je to! Nyní uvidíte zelený visací zámek vedle WSO2 URL v adresním řádku prohlížeče.
Přesto, máte problémy? Možná se budete muset podívat na následující odkazy.
- Nastavení WSO2 s platným certifikátem
- Import certifikátu SSL do úložiště klíčů WSO2