One place for hosting & domains

      CloudFlare

      Cómo alojar un sitio web usando Cloudflare y Nginx en Ubuntu 18.04


      El autor seleccionó Electronic Frontier Foundation para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Cloudflare es un servicio que se encuentra entre el visitante y el servidor del propietario del sitio web, actuando como un proxy inverso para los sitios web. Cloudflare proporciona una Red de distribución de contenido (CDN), así como servicios de mitigación de DDoS y de servidor de nombres de dominio distribuidos.

      Nginx es un servidor web popular responsable de alojar algunos de los sitios de mayor tamaño y mayor tráfico en Internet. Es común que las organizaciones sirvan a sitios web con Nginx y utilicen Cloudflare como un proveedor de CDN y DNS.

      En este tutorial, protegerá su sitio web servido por Nginx con un certificado Origin CA de Cloudflare y a continuación configurará Nginx para usar solicitudes de incorporación de cambios autenticadas. Las ventajas de usar esta configuración son que se beneficia de la CDN de Cloudflare y de la rápida resolución DNS al tiempo que garantiza que todas las conexiones pasen a través de Cloudflare. Esto evita que cualquier solicitud maliciosa llegue a su servidor.

      Requisitos previos

      Para completar este tutorial, necesitará lo siguiente:

      Paso 1: Generar un certificado TLS de Origin CA

      El Cloudflare Origin CA le permite generar un certificado TLS gratuito firmado por Cloudflare para instalarlo en su servidor Nginx. Mediante el certificado TLS generado por Cloudflare, puede proteger la conexión entre los servidores de Cloudflare y su servidor Nginx.

      Para generar un certificado con Origin CA, inicie sesión en su cuenta de Cloudflare en un navegador web. Seleccione el dominio que desea proteger y vaya a la sección SSL/TLS de su panel de control de Cloudflare. Desde ahí, vaya a la pestaña Servidor de origen y haga clic en el botón Crear certificado:

      Cree la opción de certificado en el panel de control de Cloudflare

      Deje la opción predeterminada de Permitir que Cloudflare genere una clave privada y una CSR seleccionada.

      Opciones de GUI de Origin CA

      Haga clic en Siguiente y verá un diálogo con el Certificado de origen y la Clave privada. Debe transferir tanto el certificado de origen como la clave privada desde Cloudflare a su servidor. Por razones de seguridad, la información de la clave privada no se mostrará de nuevo, de forma que debe copiarla a su servidor antes de hacer clic en Ok.

      Diálogo que muestra el certificado de origen y la clave privada

      Usaremos el directorio /etc/ssl en el servidor para guardar el certificado de origen y los archivos de claves privados. La carpeta ya existe en el servidor.

      Primero, copie el contenido del Certificado de origen que se muestra en el cuadro de diálogo de su navegador.

      A continuación, en su servidor, abra /etc/ssl/cert.pem en su editor de texto preferido:

      • sudo nano /etc/ssl/cert.pem

      Añada el contenido del certificado al archivo. Guarde y salga del editor.

      A continuación, vuelva a su navegador y copie el contenido de la clave privada. Abra el archivo /etc/ssl/key.pem para editarlo:

      • sudo nano /etc/ssl/key.pem

      Pegue la clave privada en el archivo, guárdelo y salga del editor.

      Nota: A veces, cuando copie el certificado y la clave desde el panel de control de Cloudflare y lo pegue en los archivos pertinentes del servidor, se insertan líneas en blanco. Nginx tratará esos certificados y claves como no válidos, de forma que asegúrese de que no haya líneas en blanco en sus archivos.

      Advertencia: Cloudflare solo confía en el certificado de Origin CA de Cloudflare y, por lo tanto, solo debería usar los servidores de origen que están activamente conectados a Cloudflare. Si en algún momento detiene o deshabilita Cloudflare, su certificado Origin CA arrojará un error de certificado no fiable.

      Ahora que copió los archivos de la clave y del certificado a su servidor, deberá actualizar la configuración de Nginx para usarlos.

      Paso 2: Instalar el certificado Origin CA en Nginx

      En la sección anterior, generó un certificado de origen y una clave privada usando el panel de control de Cloudflare y guardó los archivos en su servidor. Ahora actualizará la configuración Nginx para su sitio para usar el certificado de origen y la clave privada para proteger la conexión entre los servidores de Cloudflare y su servidor.

      Primero, asegúrese de que UFW permitirá el tráfico HTTPS. Habilite Nginx Full, que abrirá el puerto 80 (HTTP) y el puerto 443 (HTTPS):

      • sudo ufw allow 'Nginx Full'

      Ahora vuelva a cargar UFW:

      Por último, compruebe que se permiten sus nuevas reglas y que UFW está activo:

      Verá un resultado similar a este:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)

      Ahora está listo para ajustar su bloque de servidor Nginx. Nginx crea un bloque de servidor predeterminado durante la instalación. Elimínelo si aún existe, ya que ya ha configurado un bloque de servidor personalizado para su dominio:

      • sudo rm /etc/nginx/sites-enabled/default

      A continuación, abra el archivo de configuración Nginx para su dominio:

      • sudo nano /etc/nginx/sites-available/your_domain

      El archivo debería tener este aspecto:

      /etc/nginx/sites-available/your_domain

      server {
              listen 80;
              listen [::]:80;
      
              root /var/www/your_domain/html;
              index index.html index.htm index.nginx-debian.html;
      
              server_name your_domain www.your_domain;
      
              location / {
                      try_files $uri $uri/ =404;
              }
      }
      
      

      Modificaremos el archivo de configuración Nginx para hacer lo siguiente:

      • Escuche el puerto 80 y redireccione todas las solicitudes para usar https.
      • Escuche el puerto 443 y utilice el certificado de origen y la clave privada que añadió en la sección anterior.

      Modifique el archivo de forma que se vea lo siguiente:

      /etc/nginx/sites-available/your_domain

      server {
          listen 80;
          listen [::]:80;
          server_name your_domain www.your_domain;
          return 302 https://$server_name$request_uri;
      }
      
      server {
      
          # SSL configuration
      
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          ssl        on;
          ssl_certificate         /etc/ssl/cert.pem;
          ssl_certificate_key     /etc/ssl/key.pem;
      
          server_name your_domain www.your_domain;
      
          root /var/www/your_domain/html;
          index index.html index.htm index.nginx-debian.html;
      
      
          location / {
                  try_files $uri $uri/ =404;
          }
      }
      

      Guarde el archivo y salga del editor.

      A continuación, compruebe que no haya errores de sintaxis en ninguno de sus archivos de configuración Nginx:

      Si no se encontraron problemas, reinicie Nginx para habilitar sus cambios:

      • sudo systemctl restart nginx

      Ahora vaya a la sección SSL/TLS del panel de control de Cloudflare, vaya a la pestaña Vista general y cambie el modo de cifrado SSL/TLS a Full (strict). Esto informa a Cloudflare para que cifre siempre la conexión entre Cloudflare y su servidor Nginx de origen.

      Habilite el modo SSL Full(strict) en el panel de control de Cloudflare

      Ahora visite su sitio web en https://your_domain para verificar que se haya configurado correctamente. Verá su página de inicio y el navegador informará de que el sitio es seguro.

      En la siguiente sección, configurará las incorporaciones de cambios de origen autenticadas para verificar que su servidor de origen de hecho está hablando con Cloudflare y no con otro servidor. Al hacerlo, Nginx se configurará para solo aceptar solicitudes que utilicen un certificado de cliente válido desde Cloudflare. Se eliminarán todas las solicitudes que no hayan pasado a través de Cloudflare.

      Paso 3: Configurar las incorporaciones de cambios de origen autenticadas

      El certificado Origin CA ayudará a Cloudflare a verificar que está hablando con el servidor de origen correcto. Este paso utilizará Autenticación de cliente TLS para verificar que su servidor Nginx de origen está hablando con Cloudflare.

      En una conexión TLS autenticada por el cliente, ambos lados proporcionan un certificado para verificarlo. El servidor de origen está configurado para solo aceptar solicitudes que utilizan un certificado de cliente válido desde Cloudflare. Las solicitudes que no hayan pasado a través de Cloudflare se eliminarán ya que no tendrán el certificado de Cloudflare. Esto significa que los atacantes no pueden eludir las medidas de seguridad de Cloudflare y conectarse directamente a su servidor Nginx.

      Cloudflare presenta los certificados firmados por una CA con el siguiente certificado:

      -----BEGIN CERTIFICATE-----
      MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
      BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
      aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
      cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
      MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
      BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
      VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
      ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
      ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
      42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
      ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
      hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
      QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
      Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
      aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
      lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
      PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
      CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
      +4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
      AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
      DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
      alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
      QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
      zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
      VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
      6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
      0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
      5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
      fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
      bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
      iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
      AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
      fVQ6VpyjEXdiIXWUq/o=
      -----END CERTIFICATE-----
      

      También puede descargar el certificado directamente desde Cloudflare aquí.

      Copie este certificado.

      A continuación, cree el archivo /etc/ssl/cloudflare.crt para guardar el certificado de Cloudflare:

      • sudo nano /etc/ssl/cloudflare.crt

      Añada el certificado al archivo. Guarde el archivo y cierre el editor.

      Ahora actualice su configuración Nginx para usar incorporaciones de cambios de origen autenticadas de TLS. Abra el archivo de configuración para su dominio:

      • sudo nano /etc/nginx/sites-available/your_domain

      Añada las directivas ssl_client_certificate y ssl_verify_client como se muestra en el siguiente ejemplo:

      /etc/nginx/sites-available/your_domain

      . . .
      
      server {
      
          # SSL configuration
      
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          ssl        on;
          ssl_certificate         /etc/ssl/cert.pem;
          ssl_certificate_key     /etc/ssl/key.pem;
          ssl_client_certificate /etc/ssl/cloudflare.crt;
          ssl_verify_client on;
      
          . . .
      

      Guarde el archivo y salga del editor.

      A continuación, compruebe que no haya errores de sintaxis en su configuración Nginx:

      Si no se encontraron problemas, reinicie Nginx para habilitar sus cambios:

      • sudo systemctl restart nginx

      Por último, para habilitar las incorporaciones de cambios autenticadas, abra la sección SSL/TLS en el panel de control de Cloudflare, vaya a la pestaña Servidor de origen y cambie la opción Incorporaciones de cambios de origen autenticadas.

      Habilite las incorporaciones de cambios de origen autenticadas

      Ahora visite su sitio web en https://your_domain para verificar que se haya configurado correctamente. Como antes, verá su página de inicio.

      Para verificar que su servidor solo aceptará las solicitudes firmadas por la CA de Cloudflare, cambie la opción Incorporaciones de cambios de origen autenticadas para deshabilitarlo y vuelva a cargar su sitio web. Debería obtener el siguiente mensaje de error:

      Mensaje de error

      Su servidor de origen crea un error si la CA de Cloudflare no firma una solicitud.

      Nota: La mayoría de los navegadores almacenarán solicitudes de caché, de forma que para ver el cambio anterior puede usar el modo de navegación de Incógnito/privado en su navegador. Para evitar que Cloudflare almacene las solicitudes de caché mientras configura su sitio web, vaya a Visión general en el panel de control de Cloudflare y cambie el modo de desarrollo.

      Ahora que sabe que funciona correctamente, vuelva a la sección SSL/TLS en el panel de control de Cloudflare, vaya a la pestaña Servidor de origen y cambie la opción Incorporaciones de cambios de origen autenticadas para habilitarlo.

      Conclusión

      En este tutorial, aseguró su sitio web con Nginx cifrando el tráfico entre Cloudflare y el servidor Nginx usando un certificado Origin CA de Cloudflare. A continuación, configuró las incorporaciones de cambios de origen autenticadas en el servidor Nginx para asegurarse de que solo acepta solicitudes de los servidores de Cloudflare, evitando a cualquier otra persona conectarse directamente al servidor Nginx.



      Source link

      Comment héberger un site web en utilisant Cloudflare et Nginx sur Ubuntu 18.04


      L’auteur a choisi la Electronic Frontier Foundation comme récipiendaire d’un don dans le cadre du programme Write for DOnations.

      Introduction

      Cloudflare est un service qui se situe entre le visiteur et le serveur du propriétaire du site web, agissant comme un proxy inverse pour les sites web. Cloudflare fournit un Réseau de Diffusion de Contenu (CDN), ainsi que des services d’atténuation des DDoS et de serveurs de noms de domaine distribués.

      Nginx est un serveur web populaire qui héberge certains des sites les plus importants et les plus fréquentés d’Internet. Il est courant que des organisations desservent des sites web avec Nginx et utilisent Cloudflare comme fournisseur de CDN et de DNS.

      Dans ce tutoriel, vous allez sécuriser votre site web servi par Nginx avec un certificat Origin CA de Cloudflare et ensuite configurer Nginx pour utiliser des requêtes d’extraction authentifiées. Les avantages de cette configuration sont que vous bénéficiez du CDN et de la résolution DNS rapide de Cloudflare tout en vous assurant que toutes les connexions passent par Cloudflare. Cela empêche toute requête malveillante d’atteindre votre serveur.

      Conditions préalables

      Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :

      Étape 1 – Génération d’un certificat Origin CA TLS

      Origin CA de Cloudflare vous permet de générer un certificat TLS gratuit signé par Cloudflare, à installer sur votre serveur Nginx. En utilisant le certificat TLS généré par Cloudflare, vous pouvez sécuriser la connexion entre les serveurs de Cloudflare et votre serveur Nginx.

      Pour générer un certificat avec Origin CA, connectez-vous à votre compte Cloudflare dans un navigateur web. Sélectionnez le domaine que vous souhaitez sécuriser et naviguez jusqu’à la section SSL/TLS de votre tableau de bord Cloudflare. De là, naviguez jusqu’à l’onglet Origin Server (Serveur d’origine) et cliquez sur le bouton Create Certificate (Créer un certificat)  :

      Option de création de certificat dans le tableau de bord de Cloudflare

      Laissez l’option par défaut Let Cloudflare generate a private key and a CSR (Laisser Cloudflare générer une clé privée et une RSE) sélectionnée.

      Options de l'interface graphique d'Origin CA

      Cliquez sur Next (Suivant) et vous verrez un dialogue avec le Origin Certificate (certificat d’origine) et la Private key (clé privée). Vous devez transférer à la fois le certificat d’origine et la clé privée de Cloudflare vers votre serveur. Pour des raisons de sécurité, les informations relatives à la clé privée ne s’afficheront plus. Copiez donc la clé sur votre serveur avant de cliquer sur Ok.

      Boîte de dialogue illustrant le certificat d'origine et la clé privée

      Nous utiliserons le répertoire /etc/ssl sur le serveur pour contenir les fichiers de certificat d’origine et de clé privée. Le dossier existe déjà sur le serveur.

      Tout d’abord, copiez le contenu du certificat d’origine affiché dans la boîte de dialogue de votre navigateur.

      Ensuite, sur votre serveur, ouvrez /etc/ssl/cert.pem dans votre éditeur de texte préféré :

      • sudo nano /etc/ssl/cert.pem

      Ajoutez le contenu du certificat dans le fichier. Ensuite, sauvegardez et quittez l’éditeur.

      Retournez ensuite à votre navigateur et copiez le contenu de la clé privée. Ouvrez le fichier /etc/ssl/key.pem pour le modifier :

      • sudo nano /etc/ssl/key.pem

      Collez la clé privée dans le fichier, enregistrez le fichier et quittez l’éditeur.

      Remarque : parfois, lorsque vous copiez le certificat et la clé à partir du tableau de bord Cloudflare et que vous les collez dans les fichiers correspondants sur le serveur, des lignes vierges sont insérées. Nginx considérera ces certificats et ces clés comme non valides, assurez-vous donc qu’il n’y a pas de lignes blanches dans vos fichiers.

      Attention : le certificat Origin AC de Cloudflare n’est fiable que sur Cloudflare et ne doit donc être utilisé que par les serveurs d’origine qui sont activement connectés à Cloudflare. Si, à un moment donné, vous mettez en pause ou désactivez Cloudflare, votre certificat d’AC d’origine affichera une erreur de certificat non fiable.

      Maintenant que vous avez copié les fichiers de clés et de certificats sur votre serveur, vous devez mettre à jour la configuration de Nginx pour les utiliser.

      Étape 2 – Installation du certificat d’origine AC dans Nginx

      Dans la section précédente, vous avez généré un certificat d’origine et une clé privée en utilisant le tableau de bord de Cloudflare et avez enregistré les fichiers sur votre serveur. Vous allez maintenant mettre à jour la configuration de Nginx pour votre site afin d’utiliser le certificat d’origine et la clé privée pour sécuriser la connexion entre les serveurs de Cloudflare et votre serveur.

      Tout d’abord, assurez-vous que UFW autorisera le trafic HTTPS. Activez Nginx Full, qui ouvrira à la fois le port 80 (HTTP) et le port 443 (HTTPS) :

      • sudo ufw allow 'Nginx Full'

      Relancez maintenant UFW :

      Enfin, vérifiez que vos nouvelles règles sont autorisées et que UFW est actif :

      Vous verrez un résultat similaire à ce qui suit :

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)

      Vous êtes maintenant prêt à ajuster votre bloc serveur Nginx. Nginx crée un bloc serveur par défaut lors de l’installation. Supprimez-le s’il existe encore, car vous avez déjà configuré un bloc de serveur personnalisé pour votre domaine :

      • sudo rm /etc/nginx/sites-enabled/default

      Ensuite, ouvrez le fichier de configuration Nginx pour votre domaine :

      • sudo nano /etc/nginx/sites-available/your_domain

      Le dossier devrait ressembler à ceci :

      /etc/nginx/sites-available/your_domain

      server {
              listen 80;
              listen [::]:80;
      
              root /var/www/your_domain/html;
              index index.html index.htm index.nginx-debian.html;
      
              server_name your_domain www.your_domain;
      
              location / {
                      try_files $uri $uri/ =404;
              }
      }
      
      

      Nous allons modifier le fichier de configuration de Nginx pour faire ce qui suit :

      • Ecoutez sur le port 80 et redirigez toutes les requêtes pour qu’elles utilisent le protocole https.
      • Écoutez sur le port 443 et utilisez le certificat d’origine et la clé privée que vous avez ajoutés dans la section précédente.

      Modifiez le fichier de manière à ce qu’il ressemble à ce qui suit :

      /etc/nginx/sites-available/your_domain

      server {
          listen 80;
          listen [::]:80;
          server_name your_domain www.your_domain;
          return 302 https://$server_name$request_uri;
      }
      
      server {
      
          # SSL configuration
      
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          ssl        on;
          ssl_certificate         /etc/ssl/cert.pem;
          ssl_certificate_key     /etc/ssl/key.pem;
      
          server_name your_domain www.your_domain;
      
          root /var/www/your_domain/html;
          index index.html index.htm index.nginx-debian.html;
      
      
          location / {
                  try_files $uri $uri/ =404;
          }
      }
      

      Enregistrez le fichier et quittez l’éditeur.

      Ensuite, procédez à un test pour vous assurer qu’il n’y a aucune erreur de syntaxe dans aucun de vos fichiers Nginx :

      Si aucun problème n’a été trouvé, redémarrez Nginx pour permettre vos modifications :

      • sudo systemctl restart nginx

      Allez maintenant dans la section SSL/TLS du tableau de bord Cloudflare, naviguez jusqu’à l’onglet Overview (Vue d’ensemble), et changez le mode de cryptage SSL/TLS en mode Full (strict). Ceci informe Cloudflare de toujours crypter la connexion entre Cloudflare et votre serveur Nginx d’origine.

      Activez le mode SSL Full(strict) dans le tableau de bord de Cloudflare

      Visitez maintenant votre site web à l’adresse https://your_domain pour vérifier qu’il est correctement configuré. Vous verrez votre page d’accueil s’afficher et le navigateur vous indiquera que le site est sécurisé.

      Dans la section suivante, vous allez mettre en place des Authenticated Origin Pulls (Extractions à l’Origine Authentifiée) pour vérifier que votre serveur d’origine parle bien à Cloudflare et non à un autre serveur. Ce faisant, Nginx sera configuré pour n’accepter que les requêtes qui utilisent un certificat client valide de Cloudflare ; toutes les requêtes qui ne sont pas passées par Cloudflare seront abandonnées.

      Le certificat Origin CA aidera Cloudflare à vérifier qu’il parle au bon serveur d’origine. Cette étape utilisera l’authentification du client TLS pour vérifier que votre serveur Nginx d’origine parle à Cloudflare.

      Dans le cadre d’un handshake TLS authentifié par le client, les deux parties fournissent un certificat à vérifier. Le serveur d’origine est configuré pour n’accepter que les requêtes qui utilisent un certificat client Cloudflare valide. Les requêtes qui ne sont pas passées par Cloudflare seront abandonnées car elles n’auront pas le certificat de Cloudflare. Cela signifie que les pirates ne peuvent pas contourner les mesures de sécurité de Cloudflare, ni se connecter directement à votre serveur Nginx.

      Cloudflare présente des certificats signés par une AC avec le certificat suivant :

      -----BEGIN CERTIFICATE-----
      MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
      BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
      aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
      cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
      MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
      BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
      VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
      ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
      ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
      42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
      ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
      hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
      QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
      Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
      aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
      lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
      PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
      CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
      +4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
      AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
      DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
      alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
      QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
      zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
      VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
      6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
      0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
      5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
      fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
      bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
      iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
      AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
      fVQ6VpyjEXdiIXWUq/o=
      -----END CERTIFICATE-----
      

      Vous pouvez également télécharger le certificat directement à partir de Cloudflare ici.

      Copiez ce certificat.

      Puis, créez le fichier /etc/ssl/cloudflare.crt pour y placer le certificat de Cloudflare  :

      • sudo nano /etc/ssl/cloudflare.crt

      Ajoutez le certificat au fichier. Ensuite, enregistrez le fichier et quittez l’éditeur.

      Mettez maintenant à jour votre configuration Nginx pour utiliser les Extractions d’Origine Authentifiée TLS. Ouvrez le fichier de configuration de votre domaine :

      • sudo nano /etc/nginx/sites-available/your_domain

      Ajoutez les directives ssl_client_certificate et ssl_verify_client, comme indiqué dans l’exemple suivant :

      /etc/nginx/sites-available/your_domain

      . . .
      
      server {
      
          # SSL configuration
      
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          ssl        on;
          ssl_certificate         /etc/ssl/cert.pem;
          ssl_certificate_key     /etc/ssl/key.pem;
          ssl_client_certificate /etc/ssl/cloudflare.crt;
          ssl_verify_client on;
      
          . . .
      

      Enregistrez le fichier et quittez l’éditeur.

      Ensuite, testez Nginx pour vous assurer qu’il n’y a pas d’erreurs de syntaxe dans votre configuration Nginx :

      Si aucun problème n’a été trouvé, redémarrez Nginx pour permettre vos modifications :

      • sudo systemctl restart nginx

      Enfin, pour activer les Extractions Authentifiées, ouvrez la section SSL/TLS dans le tableau de bord Cloudflare, naviguez jusqu’à l’onglet Origin Server (Serveur d’Origine) et cochez l’option Authenticated Origin Pulls.

      Activez les Extractions d'Origine Authentifiée

      Visitez maintenant votre site web à l’adresse https://your_domain pour vérifier qu’il est correctement configuré. Comme auparavant, vous verrez s’afficher votre page d’accueil.

      Pour vérifier que votre serveur n’accepte que les demandes signées par l’AC de Cloudflare, basculez l’option Authenticated Origin Pulls pour la désactiver, puis rechargez votre site web. Le message d’erreur suivant devrait apparaître :

      Message d'erreur

      Votre serveur d’origine génère une erreur si une requête n’est pas signée par l’AC de Cloudflare.

      Remarque : la plupart des navigateurs mettent les requêtes en cache. Pour voir le changement ci-dessus, vous pouvez donc utiliser le mode de navigation Incognito/Privé dans votre navigateur. Pour éviter que Cloudflare ne mette les requêtes en cache pendant que vous configurez votre site web, naviguez jusqu’à l’aperçu dans le tableau de bord Cloudflare et basculez en Development Mode (Mode Développement).

      Maintenant que vous savez qu’il fonctionne correctement, retournez à la section SSL/TLS du tableau de bord Cloudflare, naviguez jusqu’à l’onglet Origin Server (Serveur d’origine) et activez à nouveau l’option Authenticated Origin Pulls pour l’activer.

      Conclusion

      Dans ce tutoriel, vous avez sécurisé votre site web alimenté par Nginx en cryptant le trafic entre Cloudflare et le serveur Nginx à l’aide d’un certificat Origin CA de Cloudflare. Vous avez ensuite configuré des Authenticated Origin Pulls (Extractions d’Origine Authentifiée) sur le serveur Nginx pour vous assurer qu’il n’accepte que les requêtes des serveurs Cloudflare, empêchant ainsi toute autre personne de se connecter directement au serveur Nginx.



      Source link

      Como hospedar um site usando o Cloudflare e o Nginx no Ubuntu 18.04


      O autor selecionou a Electronic Frontier Foundation para receber uma doação como parte do programa Write for DOnations.

      Introdução

      O Cloudflare é um serviço que fica entre o visitante e o servidor do proprietário do site, atuando como um proxy reverso para sites. O Cloudflare fornece uma rede de entrega de conteúdo (CDN), bem como serviços de mitigação de DDoS e serviços de servidor de nomes de domínio distribuídos.

      O Nginx é um servidor Web popular responsável por hospedar alguns dos maiores e mais acessados sites na internet. É comum as organizações hospedarem sites com o Nginx e utilizarem o Cloudflare como provedor de CDN e DNS.

      Neste tutorial, você irá proteger seu site apresentado pelo Nginx com um certificado de CA de origem da Cloudflare e então configurar o Nginx para usar solicitações pull autenticadas. As vantagens do uso desta configuração é que você se beneficia da CDN do Cloudflare e da resolução rápida de DNS ao mesmo tempo em que garante que todas as conexões passem pelo Cloudflare. Isso impede que quaisquer requisições maliciosas atinjam seu servidor.

      Pré-requisitos

      Para completar este tutorial, você precisará do seguinte:

      Passo 1 — Gerando um certificado TLS de CA de origem

      O CA de origem da Cloudflare permite gerar um certificado TLS gratuito assinado pela Cloudflare para instalar em seu servidor Nginx. Ao usar o certificado TLS gerado pelo Cloudflare você pode proteger a conexão entre os servidores do Cloudflare e seu servidor Nginx.

      Para gerar um certificado de CA de origem, faça login em sua conta Clouflare em um navegador Web. Selecione o domínio que você deseja proteger e navegue até a seção SSL/TLS do seu painel do Cloudflare. De lá, navegue até a guia Origin Server e clique no botão Create Certificate:

      Create certificate option in the Cloudflare dashboard

      Deixe a opção padrão Let Cloudflare generate a private key and a CSR selecionada.

      Origin CA GUI options

      Clique em Next e você verá uma caixa de diálogo com o Origin Certificate e Private key. Você precisa transferir tanto o certificado de origem quanto a chave privada do Cloudflare para seu servidor. Por questões de segurança, as informações de Private Key não serão exibidas novamente, então copie a chave para seu servidor antes de clicar em Ok.

      Dialog showing the origin certificate and private key

      Usaremos o diretório /etc/ssl no servidor para manter o certificado de origem e os arquivos da chave privada. A pasta já existe no servidor.

      Primeiro, copie o conteúdo de Origin Certificate exibido na caixa de diálogo em seu navegador.

      Então, em seu servidor, abra /etc/ssl/cert.pem em seu editor de texto preferido:

      • sudo nano /etc/ssl/cert.pem

      Adicione o conteúdo do certificado ao arquivo. Depois, salve e saia do editor.

      Em seguida, retorne ao seu navegador e copie o conteúdo de Private Key. Abra o arquivo /etc/ssl/key.pem para edição:

      • sudo nano /etc/ssl/key.pem

      Cole a chave privada no arquivo, salve o arquivo e saia do editor.

      Nota: às vezes, quando você copia o certificado e a chave do painel Cloudflare e o cola nos arquivos relevantes no servidor, linhas em branco são inseridas. O Nginx irá tratar esses certificados e chaves como inválidos, então certifique-se de que não haja linhas em branco em seus arquivos.

      Atenção: o certificado de CA de origem do Cloudflare só é reconhecido pelo Cloudflare e, portanto, só deve ser usado por servidores de origem que estejam ativamente conectados ao Cloudflare. Se em qualquer momento você pausar ou desativar o Cloudflare, seu certificado de CA de origem irá disparar um erro de certificado não confiável.

      Agora que você copiou os arquivos de chave e de certificado para seu servidor, você precisa atualizar a configuração do Nginx para usá-los.

      Passo 2 — Instalando o certificado de CA de origem no Nginx

      Na seção anterior, você gerou um certificado de origem e uma chave privada usando o painel do Cloudlfare e salvou os arquivos em seu servidor. Agora, você irá atualizar a configuração do Nginx para que seu site use o certificado de origem e a chave privada para proteger a conexão entre os servidores do Cloudflare e seu servidor.

      Primeiro, certifique-se de que o UFW permitirá o tráfego HTTPS. Habilite o perfil Nginx Full, que abrirá tanto a porta 80 (HTTP) quanto a porta 443 (HTTPS):

      • sudo ufw allow 'Nginx Full'

      Agora, recarregue o UFW:

      Por fim, verifique se suas novas regras estão permitidas e se o UFW está ativo:

      Você verá uma saída como esta:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)

      Agora, você está pronto para ajustar seu bloco de servidor Nginx. O Nginx cria um bloco de servidor padrão durante a instalação. Remova-o se ele ainda existir, já que você já configurou um bloco de servidor personalizado para seu domínio:

      • sudo rm /etc/nginx/sites-enabled/default

      Em seguida, abra o arquivo de configuração Nginx para seu domínio:

      • sudo nano /etc/nginx/sites-available/your_domain

      O arquivo deve ficar assim:

      /etc/nginx/sites-available/your_domain

      server {
              listen 80;
              listen [::]:80;
      
              root /var/www/your_domain/html;
              index index.html index.htm index.nginx-debian.html;
      
              server_name your_domain www.your_domain;
      
              location / {
                      try_files $uri $uri/ =404;
              }
      }
      
      

      Vamos modificar o arquivo de configuração do Nginx para fazer o seguinte:

      • Ouvir na porta 80 e redirecionar todas as requisições para usar o https.
      • Ouvir na porta 443 e usar o certificado de origem e a chave privada que você adicionou na seção anterior.

      Modifique o arquivo para que fique da seguinte forma:

      /etc/nginx/sites-available/your_domain

      server {
          listen 80;
          listen [::]:80;
          server_name your_domain www.your_domain;
          return 302 https://$server_name$request_uri;
      }
      
      server {
      
          # SSL configuration
      
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          ssl        on;
          ssl_certificate         /etc/ssl/cert.pem;
          ssl_certificate_key     /etc/ssl/key.pem;
      
          server_name your_domain www.your_domain;
      
          root /var/www/your_domain/html;
          index index.html index.htm index.nginx-debian.html;
      
      
          location / {
                  try_files $uri $uri/ =404;
          }
      }
      

      Salve o arquivo e saia do editor.

      Em seguida, teste para garantir que não haja erros de sintaxe em qualquer um dos seus arquivos do Nginx:

      Se nenhum problema for encontrado, reinicie o Nginx para habilitar suas alterações:

      • sudo systemctl restart nginx

      Agora, vá até a seção SSL/TLS do painel do Cloudflare, navegue até a guia Overview e mude SSL/TLS encryption mode para Full (strict). Isso informa ao Cloudflare para sempre criptografar a conexão entre o Cloudflare e seu servidor Nginx de origem.

      Enable Full(strict) SSL mode in the Cloudflare Dashboard

      Agora, visite seu site em https://your_domain para verificar se ele está configurado corretamente. Você verá sua página inicial exibida, e o navegador irá informar que o site é seguro.

      Na próxima seção, você irá configurar o Authenticated Origin Pulls para verificar se seu servidor de origem está realmente falando com o Cloudflare e não com algum outro servidor. Ao fazer isso, o Nginx será configurado para aceitar somente requisições que usem um certificado cliente válido da Cloudflare; todas as requisições que não passaram pelo Cloudflare serão descartadas.

      Passo 3 — Configurando o Authenticated Origin Pulls

      O certificado de CA de origem irá ajudar o Cloudflare a verificar se ele está falando com o servidor de origem correto. Este passo irá usar o cliente de autenticação TLS para verificar se seu servidor Nginx de origem está falando com o Cloudflare.

      Em um handshake TLS autenticado no cliente, ambos os lados fornecem um certificado a ser verificado. O servidor de origem está configurado para aceitar somente requisições que usam um certificado de cliente válido do Cloudflare. As requisições que não passaram pelo Cloudflare serão descartadas, pois elas não terão o certificado do Cloudflare. Isso significa que os atacantes não podem contornar as medidas de segurança do Cloudflare e se conectar diretamente ao seu servidor Nginx.

      O Cloudflare apresenta certificados assinados por uma CA com o seguinte certificado:

      -----BEGIN CERTIFICATE-----
      MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
      BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
      aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
      cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
      MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
      BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
      VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
      ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
      ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
      42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
      ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
      hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
      QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
      Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
      aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
      lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
      PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
      CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
      +4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
      AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
      DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
      alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
      QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
      zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
      VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
      6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
      0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
      5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
      fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
      bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
      iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
      AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
      fVQ6VpyjEXdiIXWUq/o=
      -----END CERTIFICATE-----
      

      Você também pode baixar o certificado diretamente do Cloudflare aqui.

      Copie este certificado.

      Em seguida, crie o arquivo /etc/ssl/cloudflare.crt para armazenar o certificado do Cloudflare:

      • sudo nano /etc/ssl/cloudflare.crt

      Adicione o certificado ao arquivo. Então, salve o arquivo e saia do editor.

      Agora, atualize sua configuração do Nginx para usar o TLS Authenticated Origin Pulls. Abra o arquivo de configuração para seu domínio:

      • sudo nano /etc/nginx/sites-available/your_domain

      Adicione as diretivas ssl_client_certificate e ssl_verify_client como mostrado no seguinte exemplo:

      /etc/nginx/sites-available/your_domain

      . . .
      
      server {
      
          # SSL configuration
      
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          ssl        on;
          ssl_certificate         /etc/ssl/cert.pem;
          ssl_certificate_key     /etc/ssl/key.pem;
          ssl_client_certificate /etc/ssl/cloudflare.crt;
          ssl_verify_client on;
      
          . . .
      

      Salve o arquivo e saia do editor.

      Em seguida, teste para garantir que não haja erros de sintaxe em sua configuração do Nginx:

      Se nenhum problema for encontrado, reinicie o Nginx para habilitar suas alterações:

      • sudo systemctl restart nginx

      Por fim, para habilitar o Authenticated Pulls, abra a seção SSL/TLS no painel do Cloudflare, navegue até a guia Origin Server e alterne a opção Authenticated Origin Pulls.

      Enable Authenticated Origin Pulls

      Agora, visite seu site em https://your_domain para verificar se ele está configurado corretamente. Como antes, você verá sua página inicial exibida.

      Para verificar se seu servidor irá aceitar apenas requisições assinadas pela CA do Cloudflare, alterne a opção Authenticated Origin Pulls para desativá-la e então recarregue seu site. Você deve obter a seguinte mensagem de erro:

      Error message

      Seu servidor de origem gera um erro se uma requisição não for assinada pela CA do Cloudflare.

      Nota: a maioria dos navegadores irá fazer cache das requisições, então para ver a alteração acima que você pode usar o modo de navegação anônimo/privado em seu navegador. Para evitar que o Cloudflare faça cache das requisições enquanto você configura seu site, navegue até Overview no painel do Cloudflare e alterne o Development Mode.

      Agora que você sabe que ele funciona corretamente, retorne à seção SSL/TLS no painel do Cloudflare, navegue até a guia Origin Server e alterne a opção Authenticated Origin Pulls de novo para habilitá-la.

      Conclusão

      Neste tutorial, você protegeu seu site hospedado em Nginx criptografando o tráfego entre o Cloudflare e o servidor Nginx usando um certificado de CA de origem do Cloudflare. Em seguida, você configurou o Authenticated Origin Pulls no servidor Nginx para garantir que ele somente aceita requisições dos servidores do Cloudflare, impedindo qualquer um que se conecte diretamente ao servidor Nginx.



      Source link