Note :

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

Préalables

Tâche 1 : Installer l'interface de ligne de commande OCI sur l'instance de calcul OCI

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.

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

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

  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>
    

    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

  1. Installez Nginx sur une instance de calcul. Pour plus d'informations, voir Installer Nginx.

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

    Image

    Il affiche un avertissement de sécurité. 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 de la console OCI ou de l'interface de ligne de commande OCI sur votre serveur Nginx.

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

    Image

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

Image

Image

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.

Confirmation

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.