• ¡Obtenga la seguridad de la aplicación de la manera correcta! Detectar, proteger, monitorear, acelerar y más ...
  • Analicemos cómo obtener un certificado SSL / TLS GRATIS de ZeroSSL e implementarlo en los servidores web Apache y Nginx.

    Introduction

    Es posible que haya escuchado mucho sobre el término como HTTP y HTTPS. En los primeros días, se definió un protocolo, que se denominó como Protocolo de transferencia de hipertexto (HTTP). Es una forma de comunicarse desde el navegador al servidor web. Cuando ocurre esta comunicación, los datos viajan en un protocolo HTTP, simplemente viajan en los formatos de texto sin cifrar. Debido a esto, se ha descubierto que la comunicación HTTP no es segura y los piratas informáticos pudieron atacar e interceptar los mensajes importantes y sensibles.

    Para resolver este problema, el HTTPS el protocolo entró en escena. Es un protocolo seguro, y el acrónimo significa Protocolo de transferencia de hipertexto seguro. Simplemente encripta los datos cuando ocurre la comunicación, y los datos viajan desde el navegador web al servidor web. De modo que si algún pirata informático recoge esa información, está toda cifrada.

    How do HTTPS works?

    El protocolo HTTPS funciona en cualquiera de las dos cosas, es decir, SSL (Secure Socket Layer) o TLS (Transport Layer Security). Ambas herramientas utilizan PKI (Infraestructura de clave pública). PKI, a su vez, utiliza dos claves, es decir. claves públicas y privadas. Todo lo que esté cifrado con la clave pública se puede descifrar utilizando la clave privada y viceversa.

    Cuando instalamos un Certificado SSL / TLS en nuestro sitio web, el 'cifrado de datos'se habilita la función. SSL se utiliza como punto de control para garantizar la seguridad de los datos que se intercambian a través de Internet entre el navegador del usuario y el servidor del sitio web.

    Getting ZeroSSL certificate

    ZeroSSL es una autoridad de certificación (CA) que hace que sea muy fácil para todos instalar un certificado para que el sitio web sea seguro. Puede obtener hasta 3 certificados con validez de 90 días en forma gratuita.

    Cero SSL

    • Regístrese con ZeroSSL
    • Después de iniciar sesión, aparecerá la página siguiente. Haga clic en 'Nuevo certificado. '

    • Ingrese la URL que desea proteger y haga clic en 'Próximo paso.'

    • Seleccione certificado de 90 días y Siguiente

    • Procedamos con la opción de generación automática de CSR

    • Continuar con el plan "Gratis"

    A continuación, deberá verificar la propiedad del dominio. Hay algunas opciones.

    • DNS: si puede agregar una entrada de registro DNS
    • Correo electrónico: si puede recibir el correo electrónico a [correo electrónico protegido]
    • Carga de archivo: si puede cargar un archivo en la raíz del dominio

    Elija lo que funcione para usted. Procederé con la entrada de DNS.

    • Agregué el CNAME y estoy listo para verificar el dominio.

    • Finalmente, una vez verificado, el certificado SSL está listo para descargar.

    Aquí están mis certificados descargados.

    Es hora de implementarlo.

    Implementing on Apache

    Lo siguiente, instalaré Apache en Ubuntu.

    Inicie sesión en el servidor e instálelo usando apt-get mando.

    sudo apt-get install apache2

    Averigüemos si Apache se está ejecutando usando systemctl mando.

    [email protected]:~# systemctl status apache2
    ● apache2.service - The Apache HTTP Server
       Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
      Drop-In: /lib/systemd/system/apache2.service.d
               └─apache2-systemd.conf
       Active: active (running) since Sat 2020-05-23 16:15:56 UTC; 3s ago
      Process: 7852 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
      Process: 14179 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
     Main PID: 14196 (apache2)
        Tasks: 55 (limit: 2362)
       CGroup: /system.slice/apache2.service
               ├─14196 /usr/sbin/apache2 -k start
               ├─14199 /usr/sbin/apache2 -k start
               └─14200 /usr/sbin/apache2 -k start
    
    May 23 16:15:56 geekflare-lab systemd[1]: Starting The Apache HTTP Server...
    May 23 16:15:56 geekflare-lab apachectl[14179]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'Serve
    May 23 16:15:56 geekflare-lab systemd[1]: Started The Apache HTTP Server.

    Genial, está funcionando.

    Mi dominio (lab.geekflare.com) ya apunta a este servidor Apache.

    Pero como puede ver, no está protegido y, por lo tanto, configuraremos el certificado que obtuvimos de ZeroSSL.

    • Creemos un directorio llamado sslCA en / etc para almacenar los archivos de certificado.
    cd /etc
    mkdir sslCA
    • Transfiera los archivos a la carpeta recién creada en el servidor
    [email protected]:/etc/sslCA# ll
    total 20
    drwxr-xr-x  2 root root 4096 May 18 12:13 ./
    drwxr-xr-x 92 root root 4096 May 22 06:07 ../
    -rw-r--r--  1 root root 2430 May 18 05:37 ca_bundle.crt
    -rw-r--r--  1 root root 2292 May 18 05:37 certificate.crt
    -rw-r--r--  1 root root 1702 May 18 05:37 private.key
    • Habilitar el módulo SSL
    sudo a2enmod SSL
    • Tendremos que reiniciar el servidor web para que se reconozcan los cambios.
    sudo service apache2 restart
    • El siguiente paso es configurar los archivos de certificado en el archivo de configuración Apache SSL.
    cd /etc/apache2/mods-available
    • El nombre del archivo es ssl.conf. Necesitamos agregar lo siguiente en <VirtualHost Directiva.
    <VirtualHost _default_:443>         
    SSLEngine on                 
    SSLCertificateFile /etc/SSLCA/certificate.crt                 
    SSLCertificateKeyFile /etc/SSLCA/private.key                 
    SSLCertificateChainFile /etc/SSLCA/ca_bundle.crt
    </VirtualHost>
    • Guarda el archivo y cierra :wq!

    Después de realizar el reinicio, SSL se habilitará en el sitio. Accedamos al sitio usando https: //

    Y, como puede ver, "La conexión es segura ". Significa que nuestro certificado SSL se ha aplicado con éxito a nuestro servidor web.

    Implementing on Nginx

    Nginx se encuentra en los repositorios predeterminados de Ubuntu, por lo que es posible instalarlo desde aquí usando el sistema de empaquetado apropiado.

    • El siguiente comando se utiliza para instalar el "Nginx.
    sudo apt install nginx
    • Después de que la instalación sea exitosa, podemos iniciar Nginx usando el siguiente comando.
    systemctl start nginx
    • Verifique el estado de Nginx.
    [email protected]:~# systemctl status nginx
    ● nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
       Active: active (running) since Tue 2020-05-19 06:54:00 UTC; 4 days ago
         Docs: man:nginx(8)
      Process: 8634 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
      Process: 8661 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
      Process: 8653 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
     Main PID: 8664 (nginx)
        Tasks: 2 (limit: 2362)
       CGroup: /system.slice/nginx.service
               ├─8664 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
               └─8707 nginx: worker process
    
    May 19 06:54:00 geekflare-lab systemd[1]: Starting A high performance web server and a reverse proxy server...
    May 19 06:54:00 geekflare-lab systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
    May 19 06:54:00 geekflare-lab systemd[1]: Started A high performance web server and a reverse proxy server.
    • Como se esperaba, el navegador mostrará la advertencia ya que la conexión a este sitio no es segura.

    Implementemos rápidamente el certificado para hacer que el sitio sea seguro usando HTTPS.

    • Vamos a crear example.com.conf presentar en /etc/nginx/conf.d ubicación. El contenido del archivo se verá como el siguiente.
    server {     
    listen              443 SSL default_server;     
    listen              [::]:443 SSL default_server ;     
    server_name         lab.geekflare.com lab.geekflare.com;     
    root                /var/www/html;     
    }
    • Ahora es necesario agregar un nombre de archivo de certificado en nginx.conf archivo que se encuentra en "/etc/nginx"Directorio.
    • Agregue lo siguiente en la directiva http
    ssl_certificate /etc/sslCA/certificate.crt; 
    ssl_certificate_key /etc/sslCA/private.key;

    • Reinicie Nginx para verificar los cambios
    systemctl restart nginx

    Y aquí vamos.

    ¿Interesado en aprender Nginx? Mira esto curso de fundamentos.

    Testing SSL/TLS Configuration

    La configuración predeterminada puede ser vulnerable, y recomiendo encarecidamente probando su sitio después de implementar el certificado. Hay una serie de herramientas en línea que puede consultar aquí.

    Conclusión

    Espero que esto le dé una idea de cómo obtener un certificado de ZeroSSL e implementarlo en los dos servidores web más populares.