Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Utilisation de certificats OCI pour émettre un certificat interne et héberger un site Web protégé TLS/SSL sur le serveur Nginx
Introduction
Dans ce tutoriel, nous expliquons comment utiliser les certificats Oracle Cloud Infrastructure (OCI) pour émettre un certificat interne afin d'héberger un site Web protégé TLS (Transport Layer Security)/SSL (Secure Sockets Layer) sur le serveur Nginx. OCI Certificates est un service permettant de créer et de gérer des certificats TLS. Le service permet aux entreprises de créer des hiérarchies d'autorité de certification privées et des certificats TLS qui peuvent être déployés et renouvelés automatiquement dans la location client, intégrés aux services OCI tels qu'OCI Load Balancer et OCI API Gateway. Nous pouvons également utiliser ce service pour générer des certificats pour nos serveurs Web internes hébergés sur Nginx.
Pour activer le cryptage TLS/SSL sur votre serveur Nginx, vous avez besoin d'un certificat TLS/SSL. La demande de signature de certificat (CSR) est une demande envoyée à une CA pour obtenir un certificat. La CSR contient des informations sur votre organisation et le domaine pour lequel vous demandez le certificat. Ces informations sont vérifiées par l'autorité de certification avant l'émission du certificat TLS/SSL. La vérification de ces informations garantit que le certificat est délivré au propriétaire légitime du domaine. Lorsque vous créez une CSR, vous pouvez également générer une clé privée. Cette clé privée est utilisée pour déchiffrer les données chiffrées avec la clé publique correspondante. Il est essentiel de générer cette clé en toute sécurité et de la garder en sécurité.
Objectifs
- Utilisez les certificats OCI pour émettre un certificat interne et héberger un site Web protégé par TLS/SSL sur le serveur Nginx.
Prérequis
-
Installez l'interface de ligne de commande Oracle Cloud Infrastructure sur votre ordinateur local. Vous pouvez le télécharger à partir de la page d'installation de l'interface de ligne de commande OCI.
-
Configurez l'interface de ligne de commande OCI avec les informations d'identification et la configuration nécessaires. Vous pouvez utiliser la commande
oci setup config
pour configurer l'interface de ligne de commande OCI. -
Installez Nginx sur le serveur. Pour plus d'informations, reportez-vous à Mise à jour de la configuration NGINX.
Tâche 1 : installation de l'interface de ligne de commande OCI sur l'instance OCI Compute
-
Installez et configurez l'interface de ligne de commande OCI. Pour plus d'informations, reportez-vous à interface de ligne de commande OCI.
-
Après vous être connecté à l'instance OCI Compute, exécutez les commandes suivantes pour installer et vérifier les packages d'interface de ligne de commande Python et OCI sur l'instance Linux.
sudo dnf -y install oraclelinux-developer-release-el8 sudo dnf install python36-oci-cli
Tâche 2 : création d'une autorité de certification dans OCI
Créez une autorité de certification (CA) à l'aide du service de certificats OCI qui sera utilisé pour émettre des certificats internes pour notre site Web. Pour plus d'informations sur la configuration de l'autorité de certification, reportez-vous à la section Creating a Certificate Authority.
Ou
Créez une autorité de certification à l'aide de l'interface de ligne de commande OCI. Utilisez la commande oci certs-mgmt certificate create-certificate-issued-by-internal-CA
et les paramètres requis pour créer une autorité de certification racine. Pour plus d'informations, reportez-vous à create-certificate-issued-by-internal-ca.
Format de commande:
oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id <compartment_OCID> --name <CA_display_name> --subject <CA_subject_information> --kms-key-id <Vault_encryption_key_OCID>
Commande Sample :
oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --name MyRootCA --subject file://subject.json --kms-key-id ocid1.key.oc1.iad.abcxxxxx
Remarque : l'objet est un type complexe dont la valeur doit être un format JSON valide. La valeur peut être fournie sous forme de chaîne sur la ligne de commande ou transmise sous forme de fichier à l'aide de la syntaxe
file://path/to/file
.
Fichier subject.json
échantillon.
subject.json
{
"commonName": "MyRootCA"
}
Tâche 3 : création d'une demande de signature de certificat à l'aide de OpenSSL
Créez une CSR sur le serveur Nginx, qui créera également une clé privée sur le même serveur. Il s'agit d'une approche recommandée qui nous fournit un moyen standardisé d'envoyer l'AC sur votre clé publique ainsi que des informations qui identifient votre entreprise et votre nom de domaine. La génération de la CSR directement sur le serveur Nginx vous permet d'intégrer de manière transparente le certificat TLS/SSL une fois qu'il est émis.
-
Accédez à
cd /etc/pki/tls/private/
. -
Créez un fichier nommé
mywebsitecert.cnf
pour indiquer des paramètres tels que le nom de sujet alternatif (SAN) pour lequel vous demandez le certificat.Remarque : l'extension SAN permet de joindre des identités supplémentaires, telles que des noms de domaine ou des adresses IP, à l'objet du certificat. L'utilisation de l'extension SAN est une pratique courante pour les certificats SSL, et elle est en voie de remplacer l'utilisation du nom commun.
Fichier échantillon:
[req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] C = IN ST = Telangana L = Hyd O = OU CN = www.mywebsite.com [v3_req] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = mywebsite.com IP.1 = 1.2.3.4
-
Utilisez la commande suivante pour créer un CSR.
Vous devrez fournir le fichier
mywebsite.csr
à une autorité de certification pour obtenir votre certificat SSL. Ils l'utiliseront pour générer le certificat SSL pour votre domaine. Il utilise la configuration déjà fournie via le fichiermywebsitecert.cnf
.Gardez le fichier
private.key
sécurisé car il est utilisé pour déchiffrer les données cryptées avec la clé publique correspondante.openssl req -out mywebsite.csr -newkey rsa:4096 -nodes -keyout private.key -config mywebsitecert.cnf
Tâche 4 : créer un certificat à l'aide de l'autorité de certification
Pour créer un certificat à l'aide de l'interface de ligne de commande OCI, vous devez installer le .pem
du certificat sur le serveur Nginx.
-
Convertissez le format du fichier
csr
au format.pem
.openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
-
Exécutez la commande suivante pour créer un certificat.
Format de commande:
oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id <compartment_OCID> --csr-pem <csr_pem> --issuer-certificate-authority-id <CA_OCID> --name <Certificate-name>
Commande Sample :
oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --csr-pem mywebsite.pem --issuer-certificate-authority-id ocid1.certificateauthority.oc1.iad.aaaxxxx --name mywebsite.com
Tâche 5 : télécharger le certificat et la chaîne de certificat
Les fichiers de certificat pem
peuvent être obtenus directement à partir de la console OCI, accédez à Identité et sécurité, Certificats, Certificat, Afficher le contenu et téléchargez le contenu de certificate-pem
et certificate-chain-pem
.
Créez un seul fichier en combinant le contenu des deux fichiers, certificate-pem
en haut et certificate-chain-pem
en bas du fichier. Vous pouvez lui attribuer le nom ca_certificate.pem
.
Ou
Vous pouvez également extraire le certificat à partir de l'interface de ligne de commande OCI à l'aide de la commande suivante.
Format de commande:
oci certificates certificate-bundle get --certificate-id <Certificate_OCID> > certificate.crt
Remarque : copiez l'identificateur Oracle Cloud (OCID) du certificat.
Tâche 6 : installation et configuration du serveur Nginx avec le certificat
-
Installez Nginx sur une instance de calcul. Pour plus d'informations, reportez-vous à Installation de Nginx.
-
Ouvrez un navigateur Web et accédez à la page Web à l'aide de
https://your-server-ip
. Recherchez les avertissements ou erreurs de sécurité susceptibles d'être affichés par le navigateur.Un avertissement de sécurité s'affiche. Nous devons donc installer le certificat et modifier le fichier
conf
sur le serveur Nginx. -
Copiez les fichiers
certificate.pem
etca_certificate.pem
téléchargés à partir de la console OCI ou de l'interface de ligne de commande OCI sur le serveur Nginx. -
Configurez votre serveur Nginx en modifiant son fichier de configuration, situé à l'adresse
/etc/nginx/conf.d
. -
Redémarrez le serveur Nginx.
Tâche 7 : vérifier si HTTPS fonctionne
Nous avons placé le certificat CA (ca_certificate.pem
) dans le dossier de l'autorité de certification racine de confiance sur la machine locale, magasin de certificats sur nos machines clientes utilisées pour accéder à ce site Web. Cela est dû au fait que les autorités de certification créées par les certificats OCI sont des autorités de certification privées qui ne sont donc pas sécurisées par les navigateurs. Nous devons donc ajouter l'autorité de certification racine et l'autorité de certification intermédiaire (si elles sont utilisées) dans la banque racine sécurisée ou la banque intermédiaire sur toutes les machines locales qui tentent d'accéder au site Web.
Ouvrez un navigateur Web et accédez à la page Web à l'aide de https://your-server-ip
. Vous devez maintenant observer que la page Web reçoit un certificat TLS valide et que tous les avertissements ou erreurs de sécurité rencontrés précédemment doivent être résolus.
En suivant ces tâches, vous assurez que votre serveur Nginx est correctement configuré avec le certificat CA interne et que les clients peuvent accéder à la page Web en toute sécurité via HTTPS.
Liens connexes
Remerciements
- Auteur - Shruti Soumya
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Use OCI Certificates to Issue an Internal Certificate and Host a TLS/SSL Protected Website on Nginx Server
F94728-01
March 2024