En este tutorial, aprenderemos a proteger Apache HTTP servidor con TLS/SSL certificados ofrecidos por Let's Encrypt en FreeBSD 11.x . También cubriremos cómo automatizar el proceso de renovación del certificado para Lets' Encrypt.
Lea también :Instale Let's Encrypt para Nginx en FreeBSD
Requisitos:
- Instalación de FreeBSD 11.x
- 10 cosas que hacer después de la instalación de FreeBSD
- Cómo instalar Apache, MariaDB y PHP en FreeBSD
Paso 1:configurar Apache SSL en FreeBSD
El propósito de estos dos directorios es facilitar la gestión de la configuración del hosting virtual en el sistema, sin modificar el httpd.conf principal de Apache. archivo de configuración cada vez que agregamos un nuevo host virtual.
# mkdir /usr/local/etc/apache24/sites-available # mkdir /usr/local/etc/apache24/sites-enabled
# nano /usr/local/etc/apache24/httpd.conf
Agregue la siguiente línea:
IncludeOptional etc/apache24/sites-enabled/*.conf
# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf
Agregue las siguientes líneas al archivo 020_mod_ssl.conf .
Listen 443 SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLPassPhraseDialog builtin SSLSessionCacheTimeout 300
LoadModule ssl_module libexec/apache24/mod_ssl.so
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
Agregue la siguiente configuración de virtualhost al archivo bsd.lan-ssl.conf .
<VirtualHost *:443> ServerName www.yourdomain.com ServerAlias yourdomain.com DocumentRoot "/usr/local/www/apache24/data/" SSLEngine on SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem" SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem" <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/local/www/apache24/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/apache/httpd-ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "/usr/local/www/apache24/data/"> Options Indexes FollowSymLinks MultiViews #AllowOverride controls what directives may be placed in .htaccess files. AllowOverride All #Controls who can get stuff from this server file Require all granted </Directory> ErrorLog "/var/log/apache/yourdomain.ssl-error.log" CustomLog "/var/log/apache/yourdomain.ssl-access_log" combined </VirtualHost>
Asegúrese de reemplazar la variable de nombre de dominio de ServerName , Alias del servidor , Registro de errores , Registro personalizado declaraciones en consecuencia.
Paso 2:Instale Lets'Encrypt en FreeBSD
Al instalar certbot una serie de avisos se mostrarán en su pantalla. Use la siguiente captura de pantalla para configurar certbot utilidad. Además, compilar e instalar la utilidad certbot puede llevar algún tiempo, según los recursos de su máquina.
# cd /usr/ports/security/py-certbot # make install clean
# pkg install py27-certbot # pkg install py27-acme
-w
bandera. Si tiene varios subdominios, agréguelos todos con -d
bandera.
# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d yourdomain.com -d www.yourdomain.com
Mientras obtiene el certificado, proporcione una dirección de correo electrónico para la renovación del certificado, presione a para aceptar los términos y condiciones de Let's Encrypt y n
para no compartir la dirección de correo electrónico de los socios de Let's Encrypt.
Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):[email protected] There seem to be problems with that address. Enter email address (used for urgent renewal and security notices) If you really want to skip this, you can run the client with --register-unsafely-without-email but make sure you then backup your account key from /etc/letsencrypt/accounts (Enter 'c' to cancel):[email protected] ------------------------------------------------------------------------------- Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree in order to register with the ACME server at https://acme-v01.api.letsencrypt.org/directory ------------------------------------------------------------------------------- (A)gree/(C)ancel:a
------------------------------------------------------------------------------- Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights. ------------------------------------------------------------------------------- (Y)es/(N)o:n
Obtaining a new certificate Performing the following challenges: http-01 challenge for www.domain.com Using the webroot path /usr/local/www/apache24/data for all unmatched domains. Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Your cert will expire on 2017-11-15. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /usr/local/etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/
Paso 3:actualice los certificados TLS de Apache en FreeBSD
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
Agregue estas líneas de certificado TLS:
SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem" SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"
# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/ # apachectl -t # service apache24 restart
# sockstat -4 | grep httpd
https://www.yourdomain.com
# openssl s_client -connect www.yourdomain.com:443
¡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 relacionadas con la utilidad certbot, visite el siguiente enlace:https://certbot.eff.org/