Remarques :

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

Prérequis

Tâche 1 : installation de l'interface de ligne de commande OCI sur l'instance OCI Compute

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.

  1. Accédez à cd /etc/pki/tls/private/.

  2. 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
    
    
  3. 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 fichier mywebsitecert.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.

  1. Convertissez le format du fichier csr au format .pem.

    openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
    
  2. 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

  1. Installez Nginx sur une instance de calcul. Pour plus d'informations, reportez-vous à Installation de Nginx.

  2. 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.

    Image

    Un avertissement de sécurité s'affiche. Nous devons donc installer le certificat et modifier le fichier conf sur le serveur Nginx.

  3. Copiez les fichiers certificate.pem et ca_certificate.pem téléchargés à partir de la console OCI ou de l'interface de ligne de commande OCI sur le serveur Nginx.

  4. Configurez votre serveur Nginx en modifiant son fichier de configuration, situé à l'adresse /etc/nginx/conf.d.

    Image

  5. 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.

Image

Image

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.

Remerciements

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.