0. Introducción
Se ha seguido esta web de Digital Ocean y Devanswers
1. Identificar el dominio
Para tener un dominio virtual hay que tener un servidor de DNS que reconozca a dicho dominio para que lo redireccione.
En el caso que no lo tengamos, para hacer las pruebas el punto 2 debemos modificar el fichero /etc/hosts para que pueda ver ese nombre, tanto en el servidor local como en cada una de las máquinas que quieran acceder a dicho servidor.
En ese caso se definirán los dominios o hosts (webprop.es y www.webprop.es)
NOTA: Para que letsencrypt pueda darte un certificado, debes tener el dominio registrado, es decir, que cualquiera, desde cualquier sitio pueda hacer un ping a tu dominio y que esté localizable. Para ello se puedes probar el google cloud DNS que tiene un período de pruebas. Yo no lo he probado, pero algunos dicen que funciona.
Para poder gestionar el dominio debes:
a. Crear el dominio y registrarlo
b. En tu firewall debes redirigir este dominio a la máquina y puerto correcto
c. En tu servidor interno de DNS debes redirigir el dominio a tu máquina y puerto internos correcto para que no vaya al exterior y vuelva a entrar
2. Localizar los ficheros de configuración
Fichero nº1:
Veamos el primer fichero de configuración (según Rich Bowen) , para ello ejecutamos
httpd -V
Y si no la encuentra, ejecutar esta otra
apache2ctl -V
Y contesta esto
Server version: Apache/2.4.29 (Ubuntu) Server built: 2021-09-28T22:27:27 Server's Module Magic Number: 20120211:68 Server loaded: APR 1.6.3, APR-UTIL 1.6.1 Compiled using: APR 1.6.3, APR-UTIL 1.6.1 Architecture: 64-bit Server MPM: event threaded: yes (fixed thread count) forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/etc/apache2" -D SUEXEC_BIN="/usr/lib/apache2/suexec" -D DEFAULT_PIDLOG="/var/run/apache2.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="mime.types" -D SERVER_CONFIG_FILE="apache2.conf"
Donde podemos adivinar que el fichero de configuración del httpd es /etc/apache2/apache2.conf
que se ha obtenido al unir las 2 cadenas marcadas en color azul y rojo
Este fichero lo utilizaríamos si quisiésemos tener más de un nombre de dominio junto diferentes IPs para un mismo servidor y se acutaría creando diferentes entradas de <VirtualHost IP:80> en este fichero, indicacando diferentes IPs para cada servidor virtual, por ejemplo
<VirtualHost 172.20.30.40:80>
Para el caso de querer tener un solo dominio, me parece más sencillo utilizar el segundo fichero que expongo a continuación
Fichero nº2:
Vamos a la carpeta /etc/apache2/sites-available y en mi caso hago un ls y veo que hay 2 ficheros: 000-default.conf y default-ssl.conf siendo el primero el que nos interesa.
Supongamos que queremos definir untenmos un dominio llamado webprop.es para ello editamos el fichero 000-default.conf y le dejamos este contenido
sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@webprop.es
ServerName webprop.es
ServerAlias www.webprop.es
DocumentRoot /var/www/webprop.es/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
CTRL
+ O y salimos conCTRL
+ X
,Ahora creamos un directorio
sudo mkdir -p /var/www/webprop.es/public_html
Creamos un fichero index.html (que és el que nos dará la bienvenida al apuntar con el navegador (http://webprop.es/) para probar
sudo nano /var/www/webprop.es/public_html/index.html
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome to webprop.es! Hava a nice day!</h2>
</body>
</html>
CTRL
+ O y salimos conCTRL
+ X
,Ahora comprobamos errores
apachectl configtest
y nos da errores
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
sudo nano /etc/apache2/apache2.conf
ServerName webprop.es
Salvamos con CTRL
+ O y salimos conCTRL
+ X
,
Reiniciamos el servidor apache y si le damos otra vez a comprobar errores (apachectl configtest) vemos que ya no tenemos errores.
3. Instalar Certbot
Añadimos al repositorio
- sudo add-apt-repository ppa:certbot/certbot
- sudo apt install python-certbot-apache
4. Obtener un certificado SSL
sudo certbot --apache
sudo certbot --apache -d webprop.es
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for webprop.es
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/000-default-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/000-default-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/000-default.conf to ssl vhost in /etc/apache2/sites-available/000-default-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://webprop.es
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=webprop.es
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/webprop.es/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/webprop.es/privkey.pem
Your cert will expire on 2022-03-07. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- 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
5. Deshacer el entuerto
sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: webprop.es
Domains: webprop.es
Expiry Date: 2022-03-07 12:30:51+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/webprop.es/fullchain.pem
Private Key Path: /etc/letsencrypt/live/webprop.es/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- cert.pem
- chain.pem
- fullchain.pem
- privkey.pem
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.csv.tavernesvalldigna.es [OR]
RewriteCond %{SERVER_NAME} =csv.tavernesvalldigna.es
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com # ServerAdmin webmaster@localhost # DocumentRoot /var/www/html ServerAdmin webmaster@webprop.es ServerName webprop.es
ServerAlias webprop.es
DocumentRoot /var/www/webprop.es/public_html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf #Added by CertBot #RewriteEngine on #RewriteCond %{SERVER_NAME} =www.csv.tavernesvalldigna.es [OR] #RewriteCond %{SERVER_NAME} =csv.tavernesvalldigna.es #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
No hay comentarios :
Publicar un comentario