Cómo asegurar Apache con SSL y cifre en FreeBSD

Cómo asegurar Apache con SSL y cifre en FreeBSD

En este tutorial aprenderemos a asegurar Apache http servidor con TLS/SSL certificados ofrecidos por Vamos a cifrar en FreeBSD 11.X. También cubriremos cómo automatizar el proceso de renovación del certificado para LET 'CIRRYPT.

Leer también: Instale Vamos en cifrado para Nginx en FreeBSD

TLS/SSL Apache Web Server utilizan los certificados para cifrar la comunicación entre nodos finales, o más ordinarios entre el servidor y el cliente para proporcionar seguridad. Vamos a encrypt proporciona certbot Utilidad de línea de comandos, que es una aplicación que puede facilitar la forma en que puede obtener certificados de confianza de forma gratuita.

Requisitos:

  1. Instalación de FreeBSD 11.X
  2. 10 cosas que hacer después de la instalación de FreeBSD
  3. Cómo instalar Apache, MariadB y PHP en FreeBSD

Paso 1: Configurar Apache SSL en FreeBSD

1. Antes de comenzar a instalar CertBot Utility y crear el archivo de configuración de TSL para apache, Primero crea dos directorios distintos nombrados sitios disponibles y sitios habilitados En el directorio de configuración de la raíz Apache emitiendo los comandos a continuación.

El propósito de estos dos directorios es facilitar la administración de configuración de alojamiento virtual en el sistema, sin modificar el apache principal httpd.confusión archivo de configuración cada vez que agregamos un nuevo host virtual.

# mkdir/usr/local/etc/apache24/sites-disponible # mkdir/usr/local/etc/apache24/sites-habilitado 

2. Después de haber creado ambos directorios, abra Apache httpd.confusión Archivo con un editor de texto y agregue la siguiente línea cerca del final del archivo como se ilustra a continuación.

# nano/usr/local/etc/apache24/httpd.confusión 

Agregue la siguiente línea:

Incluir ETC/Apache24/Sites-habilitado/*.confusión 
Configurar Apache en FreeBSD

3. A continuación, habilite el TLS módulo para apache creando el siguiente archivo nuevo llamado 020_MOD_SSL.confusión en módulos.d directorio con el siguiente contenido.

# nano/usr/local/etc/apache24/módulos.D/020_MOD_SSL.confusión 

Agregar líneas siguientes al archivo 020_MOD_SSL.confusión.

Escuche 443 sslprotocol all -sslv2 -sslv3 sslciphersuite alto: mediano:!Anull:!MD5 SSLPassPhRaseDialog Builtin SSLSessionCachetIMeOut 300 
Configuración de Apache SSL en FreeBSD

4. Ahora, descomenque Ssl módulo de /usr/local/etc/apache24/httpd.confusión Archivo eliminando el hashtag desde el comienzo de la siguiente línea como se ilustra a continuación:

LoadModule ssl_module libexec/apache24/mod_ssl.entonces 
Habilitar el módulo SSL en Apache

5. A continuación, cree el TLS archivo de configuración para su dominio en sitios disponibles Directorio, preferiblemente con el nombre de su dominio, como se presenta en el siguiente extracto:

# nano/usr/local/etc/apache24/sites disponible/bsd.lan-ssl.confusión 

Agregar siguiendo la configuración de VirtualHost a archivo BSD.lan-ssl.confusión.

 Servername www.Tu dominio.com serveralias yourdomain.com documentroot "/usr/local/www/apache24/data/" sslEngine en sslcertificateFile "/usr/local/etc/letsencrypt/live/www.Tu dominio.com/cert.PEM "SSLCertificAtekeyFile"/usr/local/etc/letsencrypt/live/www.Tu dominio.com/privkey.PEM "SSLCERTIFICATECHAINFILE"/USR/LOCAL/ETC/LETSENCRYPT/LIVE/www.Tu dominio.com/fullchain.PEM "SSLOPTIONS +STDENVVARS SSLOPTIONS +STDENVVARS BROWSERMACT".0 Fuerza-Respuesta-1.0 CustomLog "/var/log/apache/httpd-ssl_request.log "\" %t %h %ssl_protocol x %ssl_cipher x \ "" %r \"" %b ""Los índices de opciones de siguen .archivos htaccess. Ellowoverride Todos los #Controls que pueden obtener cosas de este archivo de servidor requieren todos los errores concedidos ""/var/log/apache/yourdomain.SSL-error.Log ""CustomLog""/var/log/apache/yourdomain.ssl-access_log ""combinado  

Makre seguro que reemplaza la variable del nombre de dominio desde Nombre del servidor, Servidoralias, Registro de errores, Custodleg declaraciones en consecuencia.

Paso 2: Instalar Lets'encrypt en FreeBSD

6. En el siguiente paso, emita el siguiente comando para instalar certbot utilidad proporcionada por Vamos a cifrar, que se utilizará para obtener Apache TSL Certificados gratuitos para su dominio.

Mientras se instala certbot Se mostrará una serie de avisos en su pantalla. Use la siguiente captura de pantalla para configurar certbot utilidad. Además, la compilación e instalación de la utilidad CertBot puede llevar algo de tiempo, dependiendo de los recursos de su máquina.

# CD/USR/Ports/Security/Py-Certbot # hacer que la instalación limpie 
Instale CERTBOT en FreeBSD

7. Una vez que haya terminado el proceso de compilación, emita el siguiente comando para actualizar certbot utilidad y certbot dependencias requeridas.

# PKG Instalar Py27-Certbot # PKG Instalar PY27-ACME 

8. Para generar un certificado para su dominio, emita el comando como se ilustra a continuación. Asegúrese de proporcionar la ubicación correcta de Webroot donde se almacenan los archivos de su sitio web en el sistema de archivos (Raiz del documento directiva desde su archivo de configuración de dominio) utilizando el -w bandera. Si tiene múltiples subdominios, agrégalos todos con el -d bandera.

# certBot certonly - -webroot -w/usr/local/www/apache24/data/-d yourdomain.com -d www.Tu dominio.comunicarse 

Al obtener el certificado, proporcione una dirección de correo electrónico para la renovación del certificado, presione A para acordar los términos y condiciones de encriptamiento y las condiciones norte Para no compartir la dirección de correo electrónico, encrypt Partners.

Salida del comando CertBot
Guardar registro de depuración en/var/log/letsencrypt/letsencrypt.registro Ingrese la dirección de correo electrónico (utilizada para avisos de renovación y seguridad urgente) (ingrese 'c' para cancelar): [correo electrónico protegido] Parece haber problemas con esa dirección. Ingrese la dirección de correo electrónico (utilizada para avisos de renovación y seguridad de urgencia) Si realmente desea omitir esto, puede ejecutar el cliente con-Register-Unsafely-Without-Email, pero asegúrese de hacer una copia de seguridad de su clave de cuenta desde/etc/Letsencrypt/ cuentas (ingrese 'c' para cancelar): [correo electrónico protegido] ------------------------------------ ------------------------------------------- Lea los términos de servicio en https: // Letsencrypt.org/Documents/LE-SA-V1.1.1-agosto-1-2016.pdf. Debe acordar para registrarse con el servidor ACME en https: // acme-v01.API.Letsencrypt.org/directorio ----------------------------------------------- -------------------------------- (a) Gree/(C) Ancel: a ------------------------------------------------------------------------------- ¿Estaría dispuesto a compartir su dirección de correo electrónico con Electronic Frontier Foundation, un socio fundador del Proyecto Let’s Let Cintpt y la organización sin fines de lucro que desarrolla CERTBOT? Nos gustaría enviarle un correo electrónico sobre EFF y nuestro trabajo para cifrar la web, proteger a sus usuarios y defender los derechos digitales. ------------------------------------------------------------------------------- (Sí No: norte Obtener un nuevo certificado que realiza los siguientes desafíos: HTTP-01 Desafío para www.dominio.com usando la ruta de raíz web/usr/local/www/apache24/data para todos los dominios inigualables. Esperando la verificación ... limpiando desafíos notas importantes: - Felicitaciones! Su certificado y cadena se han guardado AT/USR/Local/Etc/Letsencrypt/Live/www.Tu dominio.com/fullchain.pem. Su certificado caducará el 2017-11-15. Para obtener una versión nueva o ajustada de este certificado en el futuro, simplemente ejecute certbot nuevamente. Para renovar no interactivamente * todos * de sus certificados, ejecute ""CertBot Renew"": las credenciales de su cuenta se han guardado en su directorio de configuración CERTBOT AT/USR/LOCAL/ETC/LETSENCRYPT. Debe hacer una copia de seguridad segura de esta carpeta ahora. Este directorio de configuración también contendrá certificados y claves privadas obtenidas por CERTBOT, por lo que es ideal hacer copias de seguridad regulares de esta carpeta. - Si le gusta CERTBOT, considere apoyar nuestro trabajo: Donando a ISRG/Vamos en cifrado: https: // Letsencrypt.org/done donar a eft: https: // eff.org/donate-le

9. Después de obtener los certificados para su dominio, puede ejecutar el comando LS para enumerar todos los componentes del certificado (cadena, clave privada, certificado) como se presenta en el siguiente ejemplo.

# ls -al/usr/local/etc/letsencrypt/live/www.Tu dominio.com/ 
Lista de certificado de dominio y claves

Paso 3: Actualice los certificados de Apache TLS en FreeBSD

10. Para agregar certificados en cifrar a su sitio web, abra el archivo de configuración de Apache para su dominio y actualice las siguientes líneas para reflejar la ruta de los certificados emitidos.

# nano/usr/local/etc/apache24/sites disponible/bsd.lan-ssl.confusión 

Agregue estas líneas de certificado TLS:

SslCertificateFile ""/usr/local/etc/letsencrypt/live/www.Tu dominio.com/cert.PEM ""SSLCertificAtekeyFile""/usr/local/etc/letsencrypt/live/www.Tu dominio.com/privkey.PEM ""SSLCERTIFICATECHAINFILE""/USR/LOCAL/ETC/LETSENCRYPT/LIVE/www.Tu dominio.com/fullchain.Pem "" 
Configurar el certificado SSL para el dominio

11. Finalmente, habilite el archivo de configuración de TLS, creando un enlace simbólico para su archivo de configuración TLS de dominio a sitios habilitados Directorio, verifique las configuraciones de Apache para posibles errores de sintaxis y, si la sintaxis está bien, reinicie Apache Daemon emitiendo los comandos a continuación.

# ln -sf/usr/local/etc/apache24/sites -disponible/bsd.lan-ssl.conf/usr/local/etc/apache24/sites -habilitado/ # apachectl -t # servicio apache24 reiniciar 

12. Para verificar si el servicio Apache está escuchando Https puerto 443, emitir el siguiente comando para enumerar los sockets de red HTTPD.

# SockStat -4 | grep httpd 
Verifique los puertos Apache

13. Puede navegar a su dirección de dominio desde un navegador a través del protocolo HTTPS para confirmar que los certificados de encriptamiento se aplican correctamente.

https: // www.Tu dominio.comunicarse 
Verificar https vamos a cifrar certificado

14. Para obtener información adicional sobre el certificado de encriptamiento emitido desde la línea de comandos, use el openssl Comando de la siguiente manera.

# openssl s_client -connect www.Tu dominio.com: 443 
Verifique Vamos a cifrar información del certificado

15. También puede verificar si el tráfico está encriptado con un certificado válido proporcionado por Vamos a cifrar CA Desde un dispositivo móvil como se ilustra en la siguiente captura de pantalla móvil.

Verificar Vamos al tráfico de https en cifrado

Eso es todo! Los clientes ahora pueden visitar su sitio web de forma segura, porque el tráfico que fluye entre el servidor y el navegador del cliente está encriptado. Para tareas más complejas sobre la utilidad CertBot, visite el siguiente enlace: https: // certbot.efectivo.org/

"