GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare WSO2 con il certificato Let's Encrypt

La configurazione di un certificato SSL per WSO2 API Manager non è semplice, poiché richiede la creazione di un archivio chiavi e l'aggiunta di un certificato SSL al deposito chiavi. In questo articolo vedremo come configurare WSO2 con il certificato Let's Encrypt.

Presumo che tu abbia già il certificato Let's Encrypt emesso e pronto per aggiungerlo ai Keystore WSO2. In caso contrario, vai avanti e prendine uno per il tuo dominio. Nel mio caso, avevo il server NGINX come front-end dei servizi WSO2, quindi avevo ottenuto il certificato Let's Encrypt usando il certbot programma per il server web NGINX.

$ sudo certbot --nginx -d tg.com -d www.tg.com

Una volta emesso il certificato, troverai .pem file in '/etc/letsencrypt/live/<domain_name>/ ' cartella. Ora copia il cert.pem e privkey.pem file nella tua home directory e segui i passaggi seguenti.

Come configurare WSO2 con il certificato Let's Encrypt?

Passaggio 1:crea il file PKCS12/PFX utilizzando il cert.pem e privkey.pem file.

Utilizzeremo il comando OpenSSL per esportare i certificati in formato PKCS12/PFX e proteggerli con una password complessa quando richiesto.

$ openssl pkcs12 -export -in cert.pem -inkey privkey.pem -name "letsencrypt" -out letsencrypt.pfx
Nota:

-name opzione prende alias come valore. L'alias può essere qualsiasi nome ed è necessario per utilizzarlo successivamente nei file di configurazione di WSO2.

Passaggio 2:creazione di Java Keystore

Una volta che hai il file PFX pronto, crea Java Keystore usando il comando seguente.

$ keytool -importkeystore -srckeystore letsencrypt.pfx -srcstoretype pkcs12 -destkeystore letsencrypt.jks -deststoretype JKS

Affinché il comando precedente funzioni, dovrai avere installato JDK (ovviamente, hai già il programma di installazione di WSO2 pronto). Il comando keytool si troverebbe all'interno di bin directory del JDK.

Il comando precedente richiederà la password sia del keystore di origine che di quello di destinazione.

Passaggio 3:esporta la chiave pubblica dal file Java Keystore.

WSO2 viene fornito con il truststore pubblico (client-truststore.jks e questo file deve essere aggiornato con la chiave pubblica del file JKS creato nel passaggio 2.

Quindi andiamo avanti ed esportiamo la chiave pubblica da letsencrypt.jks file. Per farlo, esegui il comando seguente.

$ keytool -export -alias "letsencrypt" -keystore letsencrypt.jks -file letsencrypt.pem
Nota:

Ricorda di utilizzare lo stesso alias "letsencrypt ' che avevi impostato al passaggio 1.

Passaggio 4 :Sposta letsencrypt.jks e letsencrypt.pem file nella directory seguente.

$ cp letsencrypt.jks letsencrypt.pem <WSO2_APIM>/repository/resources/security
Nota:

WSO2_APIM deve essere sostituito con la directory di installazione di WSO2.

Passaggio 5: Aggiungi una chiave pubblica a client-truststore.jks

$ cd <WSO2_APIM>/repository/resources/security
$ keytool -import -alias letsencrypt -file letsencrypt.pem -keystore client-truststore.jks -storepass wso2carbon
Nota:

-storepass prende il valore come wso2carbon , che è la password predefinita del truststore del client.

Passaggio 6:configura il keystore con WSO2 API Manager.

Configura WSO2 API Manager con il nuovo Keystore creato nel passaggio 2. A tale scopo, è necessario modificare i seguenti file.

Alcune versioni di WSO2 richiedono carbon.xml file da modificare, ma le ultime versioni richiedono solo il deployment.toml file da modificare (poiché il WSO2 è riuscito a semplificare il modello di configurazione).

$ vi <WSO2_APIM>/repository/conf/carbon.xml

Cerca <KeyStore> tag e sostituiscilo con il seguente.

<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>
Nota:

Ricorda di utilizzare la stessa password e alias Keystore impostati durante la creazione del file JKS nel passaggio 2

Modifica il deployment.toml file con i dettagli del nuovo Keystore:

$vi <WSO2_APIM>/repository/conf/deployment.toml
[keystore.tls]
file_name = "letsencrypt.jks"
type = "JKS"
password = "<Keystore password>"
alias = "letsencrypt"
key_password = "<Keystore password>"

Suppongo di modificare deployment.toml dovrebbe bastare. Tuttavia, se le cose non funzionano subito, puoi modificare i file seguenti (probabilmente necessari per le versioni precedenti di WSO2 API Manager).

$ cd <WSO2_APIM>/repository/conf/
$ grep -rn "*.jks"

Modifica tutti i file elencati con le voci di Keystore pertinenti.

Ora vai avanti e riavvia il server WSO2.

$ <WSO_APIM>/bin/api-manager.sh --restart

Passaggio 7 :Accedi all'interfaccia di Carbon e controlla se il nuovo Keystore è stato aggiunto correttamente. Fai clic su Keystores > List.

Passaggio 8: Se non trovi il Keystore, puoi aggiungerlo manualmente facendo clic su Keystores > Add .

Questo è tutto! Ora vedrai il lucchetto verde accanto all'URL WSO2 nella barra degli indirizzi del browser.

Ancora, hai problemi? Potrebbe essere necessario guardare i seguenti riferimenti.

  • Impostazione di WSO2 con un certificato valido
  • Importazione del certificato SSL nei Keystore WSO2

Linux
  1. Come gestire i certificati Lets Encrypt SSL/TLS con certbot

  2. Come installare Let's Encrypt con Apache su CentOS 7

  3. Come proteggere Nginx con Let's Encrypt su Ubuntu 20.04

  4. Come installare Let's Encrypt SSL con Apache su Debian 11

  5. Come ottenere un certificato SSL gratuito con SSL It! e Let's Encrypt su Plesk

Come installare Let's Encrypt SSL con Nginx su CentOS 7

Come installare LetsEncrypt con Nginx su Ubuntu 15.04

Proteggi Nginx con Let's Encrypt SSL Certificate su Ubuntu 18.04

Come proteggere Nginx con Let's Encrypt certificato SSL

Come proteggere Apache con Let's Encrypt su CentOS 8

Come proteggere Nginx con Let's Encrypt su CentOS 8