La configuration d'un certificat SSL pour le gestionnaire d'API WSO2 n'est pas simple, car elle nécessite la création d'un magasin de clés et l'ajout d'un certificat SSL au magasin de clés. Dans cet article, nous verrons comment configurer WSO2 avec le certificat Let's Encrypt.
Je suppose que vous avez déjà émis le certificat Let's Encrypt et que vous êtes prêt à l'ajouter aux magasins de clés WSO2. Sinon, allez-y et obtenez-en un pour votre domaine. Dans mon cas, j'avais le serveur NGINX frontal des services WSO2, j'avais donc obtenu le certificat Let's Encrypt en utilisant le certbot
programme pour le serveur Web NGINX.
$ sudo certbot --nginx -d tg.com -d www.tg.com
Une fois le certificat émis, vous trouverez .pem
fichiers sous '/etc/letsencrypt/live/<domain_name>/
' dossier. Copiez maintenant le cert.pem
et privkey.pem
fichiers dans votre répertoire personnel et suivez les étapes ci-dessous.
Comment configurer WSO2 avec le certificat Let's Encrypt ?
Étape 1 :Créer un fichier PKCS12/PFX à l'aide de cert.pem
et privkey.pem
fichiers.
Nous utiliserons la commande OpenSSL pour exporter les certificats au format PKCS12/PFX et les sécuriser avec un mot de passe fort lorsque vous y serez invité.
$ openssl pkcs12 -export -in cert.pem -inkey privkey.pem -name "letsencrypt" -out letsencrypt.pfxNoter:
L'option -name prend l'alias comme valeur. L'alias peut être n'importe quel nom et est nécessaire pour l'utiliser ultérieurement dans les fichiers de configuration WSO2.
Étape 2 :Création d'un magasin de clés Java
Une fois le fichier PFX prêt, créez le Java Keystore à l'aide de la commande ci-dessous.
$ keytool -importkeystore -srckeystore letsencrypt.pfx -srcstoretype pkcs12 -destkeystore letsencrypt.jks -deststoretype JKS
Pour que la commande ci-dessus fonctionne, vous devez avoir installé JDK (bien sûr, vous avez déjà la configuration WSO2 prête). La commande keytool
serait situé à l'intérieur de bin
répertoire du JDK.
La commande ci-dessus vous demandera le mot de passe du Keystore source et du Keystore de destination.
Étape 3 :Exportez la clé publique à partir du fichier Java Keystore.
WSO2 est livré avec le magasin de confiance public (client-truststore.jks
) et ce fichier doit être mis à jour avec la clé publique du fichier JKS créé à l'étape 2.
Alors allons-y et exportons la clé publique depuis le letsencrypt.jks
dossier. Pour ce faire, exécutez la commande ci-dessous.
$ keytool -export -alias "letsencrypt" -keystore letsencrypt.jks -file letsencrypt.pemNoter:
N'oubliez pas d'utiliser le même alias 'letsencrypt
‘ que vous aviez défini à l'étape 1.
Étape 4 :Déplacer letsencrypt.jks
et letsencrypt.pem
fichiers dans le répertoire suivant.
$ cp letsencrypt.jks letsencrypt.pem <WSO2_APIM>/repository/resources/securityNoter:
WSO2_APIM doit être remplacé par le répertoire d'installation de WSO2.
Étape 5 : Ajouter une clé publique au client-truststore.jks
$ cd <WSO2_APIM>/repository/resources/security
$ keytool -import -alias letsencrypt -file letsencrypt.pem -keystore client-truststore.jks -storepass wso2carbonNoter:
-storepass prend la valeur comme wso2carbon
, qui est le mot de passe par défaut du magasin de confiance du client.
Étape 6 :Configurez le magasin de clés avec le gestionnaire d'API WSO2.
Configurez le WSO2 API Manager avec le nouveau Keystore créé à l'étape 2. Pour ce faire, les fichiers suivants doivent être modifiés.
Certaines versions de WSO2 nécessitent carbon.xml
fichier à modifier, mais les dernières versions n'ont besoin que du deployment.toml
fichier à modifier (car le WSO2 a réussi à simplifier le modèle de configuration).
$ vi <WSO2_APIM>/repository/conf/carbon.xml
Recherchez <KeyStore>
balise et remplacez-la par celle ci-dessous.
<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>Noter:
N'oubliez pas d'utiliser le même mot de passe Keystore et le même jeu d'alias lors de la création du fichier JKS à l'étape 2
Modifiez le deployment.toml
fichier avec les détails du nouveau 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>"
Je suppose que je modifie deployment.toml
devrait suffire. Cependant, si les choses ne fonctionnent pas immédiatement, vous pouvez modifier les fichiers ci-dessous (probablement requis pour les anciennes versions de WSO2 API Manager).
$ cd <WSO2_APIM>/repository/conf/ $ grep -rn "*.jks"
Modifiez tous les fichiers répertoriés avec les entrées Keystore pertinentes.
Maintenant, allez-y et redémarrez le serveur WSO2.
$ <WSO_APIM>/bin/api-manager.sh --restart
Étape 7 :Connectez-vous à l'interface Carbon et vérifiez si le nouveau Keystore est ajouté avec succès. Cliquez sur Keystores > List.
Étape 8 : Si vous ne trouvez pas le Keystore, vous pouvez l'ajouter manuellement en cliquant sur Keystores > Add
.
C'est ça! Vous verrez maintenant le cadenas vert à côté de l'URL WSO2 dans la barre d'adresse du navigateur.
Vous avez encore des problèmes ? Vous devrez peut-être consulter les références suivantes.
- Configuration de WSO2 avec un certificat valide
- Importer un certificat SSL dans les magasins de clés WSO2