Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Utiliser des certificats OCI pour émettre un certificat interne et héberger un site Web protégé par TLS/SSL sur un serveur Nginx
Présentation
Dans ce tutoriel, nous décrirons comment utiliser les certificats Oracle Cloud Infrastructure (OCI) pour émettre un certificat interne afin d'héberger un site Web protégé par TLS (Transport Layer Security)/SSL (Secure Sockets Layer) sur le serveur Nginx. Les certificats OCI sont un service permettant de créer et de gérer des certificats TLS. Le service permet aux organisations de créer des hiérarchies d'autorité de certification et des certificats TLS privés qui peuvent être déployés et renouvelés automatiquement dans la location du client, intégrés aux services OCI tels que l'équilibreur de charge OCI et la passerelle d'API OCI. 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 chiffrement 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 autorité de certification pour obtenir un certificat. Le 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 un CSR, vous générez également 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 crucial 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éalables
-
Installez l'interface de ligne de commande Oracle Cloud Infrastructure (interface de ligne de commande OCI) sur votre machine locale. Vous pouvez le télécharger à partir de la page d'installation de l'interface de ligne de commande OCI.
-
Configurez et configurez l'interface de ligne de commande OCI avec les données 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 votre serveur. Pour plus d'informations, voir Mettre à jour la configuration NGINX.
Tâche 1 : Installer l'interface de ligne de commande OCI sur l'instance de calcul OCI
-
Installez et configurez l'interface CLI OCI. Pour plus d'informations, voir interface de ligne de commande (CLI) d'OCI.
-
Après vous être connecté à l'instance de calcul OCI, exécutez les commandes suivantes pour installer et vérifier les ensembles Python et d'interface de ligne de commande OCI sur l'instance Linux.
sudo dnf -y install oraclelinux-developer-release-el8 sudo dnf install python36-oci-cli
Tâche 2 : Créer une autorité de certification dans OCI
Créez une autorité de certification à 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 d'une autorité de certification, voir Création d'une autorité de certification.
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, voir 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>
Exemple de commande :
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
Note : L'objet est un type complexe dont la valeur doit être dans un format JSON valide. La valeur peut être fournie sous forme de chaîne sur la ligne de commande ou transmise en fichier en utilisant la syntaxe
file://path/to/file
.
Exemple de fichier subject.json
.
subject.json
{
"commonName": "MyRootCA"
}
Tâche 3 : Créer 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'autorité de certification sur votre clé publique ainsi que des informations qui identifient votre entreprise et votre nom de domaine. La génération du CSR directement sur le serveur Nginx vous permet d'intégrer de façon 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 spécifier des paramètres tels que le nom de remplacement du sujet (SAN) pour lequel vous demandez le certificat.Note : L'extension SAN permet d'attacher des identités supplémentaires, telles que des noms de domaine ou des adresses IP, au sujet du certificat. L'utilisation de l'extension SAN est une pratique standard pour les certificats SSL, et elle est sur le point de remplacer l'utilisation du nom commun.
Exemple de fichier :
[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 devez fournir le fichier
mywebsite.csr
à une autorité de certification pour obtenir votre certificat SSL. Ils l'utiliseront pour générer le certificat SSL de votre domaine. Il utilise la configuration déjà fournie au moyen du fichiermywebsitecert.cnf
.Gardez le fichier
private.key
sécurisé, car il est utilisé pour déchiffrer les données chiffré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 nouveau certificat à l'aide de l'interface de ligne de commande OCI, vous devez installer .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>
Exemple de commande :
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 certificats
Les fichiers de certificat pem
peuvent être obtenus directement à partir de la console OCI, naviguez jusqu'à Identité et sécurité, Certificats, Certificat, Voir le contenu et téléchargez le contenu de certificate-pem
et certificate-chain-pem
.
Créez un fichier unique en combinant le contenu des deux fichiers, certificate-pem
en haut et certificate-chain-pem
en bas du fichier. Vous pouvez le nommer ca_certificate.pem
.
Ou
Vous pouvez également extraire le certificat 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
Note : Copiez l'identificateur Oracle Cloud (OCID) du certificat.
Tâche 6 : Installer et configurer le serveur Nginx avec le certificat
-
Installez Nginx sur une instance de calcul. Pour plus d'informations, voir Installer Nginx.
-
Ouvrez un navigateur Web et accédez à la page Web à l'aide de
https://your-server-ip
. Vérifiez les avertissements ou les erreurs de sécurité qui peuvent être affichés par le navigateur.Il affiche un avertissement de sécurité. 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 de la console OCI ou de l'interface de ligne de commande OCI sur votre serveur Nginx. -
Configurez votre serveur Nginx en modifiant son fichier de configuration, à l'adresse
/etc/nginx/conf.d
. -
Redémarrez le serveur Nginx.
Tâche 7 : Tester si HTTPS fonctionne
Nous avons placé le certificat AC (ca_certificate.pem
) dans le dossier de l'autorité de certification racine approuvée sur la machine locale, magasin de certificats sur nos machines clients utilisées pour accéder à ce site Web. Cela se fait parce que les autorités de certification créées par les certificats OCI sont des autorités de certification privées et ne sont donc pas approuvé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 le magasin racine approuvé ou le magasin 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 est desservie avec 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 AC interne, et les clients peuvent accéder en toute sécurité à la page Web via HTTPS.
Liens connexes
Confirmation
- Auteur - Shruti Soumya
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez 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
F94727-01
March 2024