You are on page 1of 23

Manual de administracin de servidores Linux

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 1 de 23
Manual de administracin de servidores Linux

Introduccin: Manual de administracin


de servidores Linux

En el Manual de administracin de servidores Linux encontrars diversas guas que te


ayudarn a acceder a servidores para su actualizacin y configuracin, la instalacin de
paquetes y todo tipo de tareas administrativas.

En este manual encontrars talleres principalmente prcticos, que te ayudarn paso por paso a
realizar toda una gama de tareas de administracin de servidores habituales en el entorno web.

Encuentras este manual online en:


http://desarrolloweb.com/manuales/administracion-servidores-linux.html

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 2 de 23
Manual de administracin de servidores Linux

Autores del manual

Las siguientes personas han participado como autores escribiendo artculos de este manual.

Vicente Garca

Desarrollador web y apasionado de Internet.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de


formacin online EscuelaIT. Comenz en el mundo del desarrollo web
en el ao 1997, transformando su hobby en su trabajo.

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 3 de 23
Manual de administracin de servidores Linux

Gua para el acceso por SSH y comandos


bsicos con servidores Linux

Esta es una lista de comandos de Linux que vengo usando habitualmente, para el
acceso por SSH a un servidor web y la realizacin de pequeas tareas de
administracin.

No soy un administrador de sistemas, ni mucho menos... sin embargo en el da a da toda


semana me toca entrar en diversos servidores y realizar distintos tipos de operativas para su
gestin. Generalmente me limito a hacer tareas sencillas y pido ayuda a administradores de
sistemas de verdad para que realicen su trabajo en la instalacin de servidores y la seguridad.

No obstante, es muy importante conocer los comandos ms bsicos para poder acceder a un
servidor y hacer el deploy de aplicaciones, o estar atento de la marcha de diversos servicios,
reiniciarlos, etc. Dicho esto, aclaro que los comandos que vamos a ver son sencillos y tiles
para las tareas ms bsicas que un desarrollador puede realizar.

Tambin hay que avisar que suelo usar servidores con Debian o Ubuntu, que es una
distribucin derivada y por lo tanto es muy similar.

Acceso a un servidor por SSH


Comenzaremos viendo el acceso a un servidor por SSH, un comando que te conecta con el
servidor remoto y te permite trabajar con l desde la lnea de comandos.

El comando es "ssh" y sigue de la direccin IP, o dominio, del servidor que deseas acceder.

ssh dominio.example.com

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 4 de 23
Manual de administracin de servidores Linux

Lo que ocurre con este comando a secas es que te conecta con el nombre de usuario que tienes
en tu mquina local, por lo que generalmente necesitas indicarle un nombre de usuario en
concreto:

ssh root@0.0.0.1

El usuario puede ser "root" o bien cualquier otro.

Una vez dentro del servidor puedes escalar tu usuario a root con:

sudo su

Muchos comandos como los que veremos a continuacin para el mantenimiento del servidor,
necesitan que ests logueado con permisos de "root".

Mantenimiento del servidor


Ahora vamos a ver algunos comandos esenciales para mantener el servidor al da.

Si administras o usas un servidor, una de las cosas ms importantes que debes hacer es
mantenerlo actualizado. Muchas de los updates que se publican en el software libre de tu
servidor (ya sea el propio sistema operativo o los programas que tengas instalados) son
muchas veces actualizaciones de seguridad, por lo que es importante instalarlas todas.

Cuando entras en el servidor generalmente te informa sobre las actualizaciones disponibles, y


cuntas de ellas son relativas a la seguridad:

Actualizar los programas


En Ubuntu o Debian se usa el comando "apt-get" para instalar las actualizaciones.
Generalmente haces lo siguiente primero:

apt-get update

Con eso consigues actualizar los repositorios, para que tu servidor sepa realmente lo que tiene

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 5 de 23
Manual de administracin de servidores Linux

que descargarse de nuevo. Seguidamente ejecutas el comando:

apt-get upgrade

Este segundo comando sirve para instalar las actualizaciones disponibles para tu sistema,
tanto el propio sistema operativo como los programas que tengas instalados mediante los
repositorios.

Nota: apt-get funciona para las distribuciones basadas en Debian (Ubuntu, Mint, el propio
Debian) otras distros como CentOS usan el comando "yum". Supongo que habr ms
gestores de paquetes pero no los he usado.

A veces, a pesar de hacer un apt-upgrade se quedan algunos paquetes sin instalar. Entonces
usas:

sudo apt-get dist-upgrade

Instalar nuevos programas va repositorios


En Linux es importante instalar los programas va los repositorios del propio sistema, esto te
asegura que te enteres cuando haya actualizaciones, y stas se puedan instalar de manera
sencilla.

Es normal que cuando entras en un servidor por primera vez no dispongas de algunos
comandos bsicos que sueles usar, como el que lanza el editor Vim, o Nano, Git, etc. En ese
caso debes simplemente instalar estos programas usando los repositorios, con el mismo apt-
get (o el gestor de paquetes que se use en tu sistema).

Por ejemplo, instalar vim se consigue con:

apt-get vim

Apagados o reinicios
A veces necesitas reiniciar la mquina, o apagarla. Tambin es sencillo via ssh.

Reinicia la mquina. Realiza el apagado y arranca de nuevo la mquina. Importante porque


algunas actualizaciones requieren el reinicio del servidor.

reboot

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 6 de 23
Manual de administracin de servidores Linux

Ojo con el comando shutdown, que te puede apagar el servidor y no te lo vuelve a arrancar.
Quizs tengas que entrar en el manager de tu servidor, en la pgina web del proveedor donde
lo gestiones, para volverlo a arrancar

shutdown -h now

Esta es otra alternativa para reinicio de la mquina. Como un reboot.

shutdown -r now

Cuando se reinicia la mquina generalmente se saldr de tu conexin ssh y tendrs que volver
a conectarte pasado un minuto o dos, usando el comando ssh de nuevo.

Mantenimiento de servicios habituales


Muchas de las veces que ocurre un problema en el servidor se soluciona reiniciando los
servicios, ya sea Apache, MySQL, Nginx. Obviamente, si algo ms grave est ocurriendo sto
no te salvar, pero afortunadamente un reinicio de los servicios es suficiente.

Servicio Nginx
Si usas Nginx puedes reiniciar el servicio con:

systemctl restart nginx

Nota: Recuerda usar "sudo systemctl start nginx" o bien asegurarte de ser root o haber
escalado a superusuario. Asi mismo, para reiniciar tambin podras hacer primero un
comando stop y luego uno start.

Para ver el status del servidor:

systemctl status nginx

Si eso no te funciona, como alternativa prueba:

service nginx restart

Servicio de Apache
Si usas Apache, entonces podrs reiniciar el servicio con este comando: (recuerda usar sudo o

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 7 de 23
Manual de administracin de servidores Linux

ser superusuario).

/etc/init.d/apache2 restart

Otra alternativa que podra servirte es:

service apache2 restart

De la misma manera, puedes hacer primero un "stop" y luego un "start", que sera el
equivalente a un "restart".

Servicio MySQL
Otro de los servicios que se puede trabar y hacer que tu web funcione de repente muy lenta es
MySQL. En estos casos tambin un reinicio suele ser "mano de santo".

/etc/init.d/mysqld restart

Como alternativa:

service mysqld start

Conclusin
Con esto acabamos con la lista bsica de comandos para acceso a un servidor y su
mantenimiento, para las acciones ms sencillas que puedas llegar a necesitar. Haremos otras
recopilaciones de comandos en el futuro que estamos seguros que te resultarn tambin de
mucha utilidad. Puedes consultar todo en el Manual de Introduccin a Linux.

Este artculo es obra de Miguel Angel Alvarez


Fue publicado por primera vez en 25/01/2017
Disponible online en http://desarrolloweb.com/articulos/guia-acceso-ssh-comandos-
basicos-linux.html

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 8 de 23
Manual de administracin de servidores Linux

Configuracin de un servidor web


Apache en CentOS

Con este artculo aprenderemos cmo instalar y configurar un servidor con


Apache, MySQL, PHP y FTP sobre CentOS 6.5.

Cuando contratamos un servidor a nuestro proveedor de servicios, podemos elegir el sistema


operativo, la distribucin y la configuracin inicial. En nuestro caso optaremos por un servidor
Linux con una distribucin de la ltima versin de CentOS, configuracin mnima y 64 bits.

Una vez que el servidor este disponible podremos acceder por SSH. Nada mas conectar
podremos empezar con la siguiente configuracin:

1) Cambiamos el nombre de nuestra mquina


Podemos hacerlo editando el fichero /etc/hosts. Al final de la lnea que empiece por 127.0.0.1
aadimos el nombre que queramos, quedando de la siguiente manera:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 minombre

Tambin habr que hacerlo en el fichero /etc/sysconfig/network, cambiando el valor de la


variable HOSTNAME. En este caso el fichero queda de la siguiente manera:

NETWORKING=yes

HOSTNAME=minombre

2) Actualizamos el sistema con el siguiente comando

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 9 de 23
Manual de administracin de servidores Linux

#yum update

Si queremos que al instalar los grupos, que veremos mas adelante, se instalen tambin los
paquetes opcionales, aadiremos entonces en el fichero "/etc/yum.conf" la siguiente lnea:

group_package_types=mandatory,default,optional

3) Instalamos las herramientas de desarrollo, como el paquete de


compiladores GCC, make, las fuentes del kernel y Perl

#yum install gcc make kernel-devel perl

Esto instala los mnimos paquetes para desarrollo. Si queremos instalar todos ellos, podremos
hacerlo ejecutando el siguiente comando:

#yum groupinstall Development tools.

Si antes de instalarlos queremos slo ver los paquetes que contiene el grupo de desarrollo,
ejecutamos la siguiente lnea:

#yum groupinfo "Development tools"

4) Instalamos PHP
Con el siguiente comando instalamos todo lo necesario:

#yum groupinstall "PHP Support

Puede que nos falte alguna cosa, as que podemos correr la siguiente lnea para completar la
instalacin de PHP:

#yum install php-mbstring php-devel php-mcrypt zlib zlib-devel zlib-static

Seguidamente, podemos configurar la zona horaria predeterminada usada por las funciones
"date" y "time", para ello en el fichero "/ etc/php.ini" aadimos la siguiente lnea:

date.timezone = "Europe/Madrid"

5) Instalamos y configuramos el servidor Apache


http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 10 de 23
Manual de administracin de servidores Linux

#yum groupinstall Web Server.

Como hemos dicho, si antes de instalar queremos ver todos los paquetes que contiene este
grupo, haramos "groupinfo" en lugar de "groupinstall".

Podemos completar la instalacin del servidor Apache instalando las libreras de desarrollo:

#yum install httpd-devel

Para ver la versin de Apache instalada, ejecutamos:

#httpd -v

El fichero principal de configuracin se encuentra en "/etc/httpd/conf/httpd.conf", y el resto


de ficheros de configuracin en "/etc/httpd/conf.d".

Hay que decir que cualquier fichero con extensin .conf que coloquemos en el directorio
"/etc/httpd/conf.d" ser procesado por el servidor Apache. Tener en cuenta que los procesa
por orden alfabtico. Si hacemos un cambio en alguno de estos ficheros o aadimos uno nuevo,
hay que recargar para que el servidor recoja los cambios y para ello hacemos:

#service httpd reload

Ahora daremos un nombre al servidor. Aunque no es necesario hacer esto, s es recomendable


para que no aparezcan problemas en los arranques. Para esto nos aseguramos de que en el
fichero de configuracin httpd.conf tengamos la siguiente lnea:

ServerName localhost

Tambin es recomendable eliminar la pgina de prueba que nos instala el servidor. Para ello
editamos el fichero /etc/httpd/conf.d/welcome.conf y comentamos todas las lneas, quedando
de la siguiente manera:

#<LocationMatch "^/+[[--body--]]quot;>

#Options -Indexes

#ErrorDocument 403 /error/noindex.html

#</LocationMatch>

Si queremos utilizar servidores virtuales (virtual hosts) y tener los ficheros organizados,
podemos crearnos un fichero llamado por ejemplo "vhosts.conf" que contenga nuestros virtual
hosts y colocar el fichero en "/etc/httpd/conf.d". El fichero quedara con un contenido

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 11 de 23
Manual de administracin de servidores Linux

parecido al siguiente:

NameVirtualHost [IP]:80

<VirtualHost [IP]:80>

ServerName www.midominio.com

ServerAlias www.midominio.com midominio.com

DocumentRoot /var/www/html/midominio.com/www

CustomLog /etc/httpd/logs/midominio.com.access_log combined

ErrorLog /etc/httpd/logs/midominio.com.error_log

</virtualhost>

Sustituir [IP] por tu IP pblica y midominio por el dominio que quieras dar servicio.

Ahora podemos arrancar el servidor Apache de la siguiente manera:

#service httpd start

Si queremos que el servicio se inicie al arrancar nuestra mquina, podemos habilitarlo con:

#chkconfig httpd on

Si en los servidores DNS de "midominio" tenemos las entradas correspondientes apuntadas


correctamente a nuestra IP, ya podramos verlo a travs de un navegador entrando en
http://www.midominio.com

En la segunda parte de este artculo terminaremos de configurar nuestro servidor instalando el


servidor MySQL y el servidor de FTP.

Este artculo es obra de Vicente Garca


Fue publicado por primera vez en 13/01/2014
Disponible online en http://desarrolloweb.com/articulos/configuracion-servidor-web-
centos.html

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 12 de 23
Manual de administracin de servidores Linux

Servidor MySQL y el servidor de FTP en


CentOS

**En el <a href='http://www.desarrolloweb.com/articulos/configuracion-servidor-web-


centos.html'&gt; artculo anterior</a> vimos cmo configurar nuestra mquina e instalar PHP
y Apache. En esta ocasin instalamos MySQL y el servidor de FTP.

**

1) Instalacin de MySQL
Tal y como hicimos con Apache, instalamos MySQL de manera similar, es decir:

#yum groupinstall MySQL Database server

Esto instalar el paquete mysql-server necesario para ejecutar el servidor de base de datos. A
continuacin instalamos las herramientas del cliente MySQL con:

#yum groupinstall MySQL Database client

A continuacin editamos el fichero de configuracin de MySQL que podemos localizar en


/etc/my.cnf.

Por cierto, el editor que suelo utilizar en el terminal es nano. No es tan potente como Vim o
Emacs pero para ediciones sencillas, como en estos casos, es ms que suficiente y su uso es
muy simple: al editar cualquier fichero podemos ver en las dos lneas de abajo la ayuda.

Por tanto, hacemos:

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 13 de 23
Manual de administracin de servidores Linux

#nano /etc/my.cnf

El contenido de my.cnf podra ser algo tan sencillo como esto:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

Otros ficheros con configuraciones diferentes podemos encontrarlos en


/usr/share/doc/mysql-server-x.x.x (sustituir x.x.x por nuestra versin de MySQL). Aqu
podremos encontrar ejemplos de configuraciones para sistemas muy grandes (my-huge.cnf),
pequeos (my-small.cnf), etc.

Lo siguiente que debemos hacer es ponerle la clave al usuario root de MySQL, as como
eliminar la base de datos test y el usuario annimo que se instalan por defecto. Para ello
arrancamos el servicio con:

#service mysqld start

A continuacin ejecutamos la siguiente lnea:

#/usr/bin/mysql_secure_installation

Despus de contestar a una serie de preguntas que nos hace, ya tendremos nuestro servidor
MySQL instalado y ejecutndose. Es recomendable poner que se inicie al arrancar nuestra
mquina Linux, para ello basta con hacer:

#chkconfig mysqld on

Si queremos ver la informacin de los servicios del sistema y comprobar que los que hemos
instalado hasta ahora se inician al arrancar la mquina, podemos hacerlo ejecutando:

#chkconfig --list

En este punto podremos ver los servicios httpd y mysqld configurados en los niveles 2, 3, 4 y 5.

2) Instalamos el servidor FTP

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 14 de 23
Manual de administracin de servidores Linux

Actualmente existen varios servidores de FTP que podemos instalar en nuestro sistema. En
nuestro caso hemos optado por instalar ProFTPD, ya que es bastante estable y seguro.

Lo primero es asegurarnos de que no tenemos ya instalado otro servidor FTP, como pudiera
ser vsftpd; en tal caso habra que eliminarlo con:

#yum remove vsftpd

Si queremos instalar proftpd con yum debemos habilitar EPEL, que es un repositorio con
paquetes adicionales. Lo habilitamos de la siguiente manera:

#rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

A continuacin basta con instalar proftpd:

#yum install proftpd

Seguidamente lo configuramos editando el fichero /etc/proftpd.conf. Algunas lneas tiles


que deberamos agregar al fichero de configuracin y que no vienen en la instalacin por
defecto son:

#Para que no muestre los directorios superiores

DefaultRoot ~

#Para ocultar . y ..

ListOptions "" strict

#Permite continuar descargas incompletas

AllowRetrieveRestart on

#Permite continuar subidas incompletas

AllowStoreRestart on

Arrancamos el servicio:

#service proftpd start

Lo habilitamos para que se inicie al arrancar la mquina:

#chkconfig proftpd on

En este punto ya tendramos el servidor listo para empezar a funcionar, pero antes de nada lo
recomendable es asegurarlo. Aqu hay algunas cosas que hacer, pero para no alargar
demasiado el artculo comento un par de puntos importantes para hacer ya mismo:

Si contamos con un firewall lo ideal es utilizarlo y cerrar todos los puertos excepto los
que vayamos a utilizar: 80(http), 443(https), 20, 21(ftp), 22(ssh),
Si accedemos a nuestra mquina por ssh podemos aadir una regla a las iptables para
restringir el acceso por IP, lo mismo para el ftp (sustituimos las Xs por nuestra IP):

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 15 de 23
Manual de administracin de servidores Linux

#/sbin/iptables --flush

#/sbin/iptables -A INPUT -s XXX.XXX.XXX.XXX -p tcp --dport 20:21 -j ACCEPT

#/sbin/iptables -A INPUT -s XXX.XXX.XXX.XXX -p tcp --dport 22 -j ACCEPT

#/sbin/iptables -A INPUT -p tcp --dport 20:21 -j DROP

#/sbin/iptables -A INPUT -p tcp --dport 22 -j DROP

#/etc/rc.d/init.d/iptables save

Esta segunda parte del artculo completa lo que sera la instalacin y configuracin de nuestro
servidor web. S que se puede profundizar mucho mas en cada uno de estos puntos, pero el
objetivo era hacer una gua breve y sencilla para poder comenzar a trabajar con el servidor.

Este artculo es obra de Vicente Garca


Fue publicado por primera vez en 21/01/2014
Disponible online en http://desarrolloweb.com/articulos/servidor-mysql-ftp-centos.html

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 16 de 23
Manual de administracin de servidores Linux

Instalar un certificado SSL gratuito con


Lets Encrypt

Gua para Instalar un certificado SSL gratuito de Lets Encrypt sobre un sitio web
con el servidor Apache y sistema operativo Linux con Debian.

Google est haciendo una campaa muy fuerte, desde hace aos, para que todos los
administradores de webs mudemos de http para https. Es sin duda una buena idea, pero
tradicionalmente tener un servidor por https era una complicacin, por diversos motivos.
Entre ellos la propia instalacin de los certificados o el pago peridico a entidades de
certificacin para mantenerlos. Afortunadamente gracias a Let's Encrypt esta situacin ha
pasado a la historia.

Actualmente no existen desventajas o complicaciones por las que no puedas hacerte en unos
minutos con tu propio certificado SSL y configurarlo en tu servidor. Adems completamente
gratuito, gracias a la entidad certificadora Let's Encrypt, que ofrece la posibilidad de generar
los certificados automticamente por nosotros mismos, sin la necesidad de depender de nadie
ms.

Todos los interesados, dedicando un poco de tiempo, podemos hacer las tareas necesarias para
migrar a https. Solo necesitas acceso a tu servidor por lnea de comandos mediante SSH.
Deben existir decenas o cientos de configuraciones. Yo voy a explicar cmo lo he hecho yo en
un servidor Linux Debian con Apache, para DesarrolloWeb.com.

Nota: Aunque para hacer esto no necesitas ser administrador de sistemas (Yo mismo no
soy sysadmin), alguna cosa doy por sabida. Bsicamente se trata de entrar por SSH y
realizar los comandos bsicos.

Instalar certbot en tu servidor

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 17 de 23
Manual de administracin de servidores Linux

El primer paso consiste en instalar certbot en tu servidor. Esto es fcil porque en la propia
pgina de certbot explican cmo hacerlo para una gran cantidad de configuraciones posibles.

Entra en https://certbot.eff.org/ y elige tu configuracin

Debian 8 (jessie)

Si ests trabajando con Debian 8 usars el comando:

sudo apt-get install python-certbot-apache -t jessie-backports

Lo que pasa es que antes debes agregar los repositorios jessie-backports. Es una accin
adicional que tendrs que procesar, si no la has hecho antes con algn otro software. El tema
de activar los repositorios jessie-backports est explicado en
https://backports.debian.org/Instructions/ pero bsicamente se trata de aadir una lnea a un
archivo. Entra en la carpeta "/etc/apt/sources.list.d" y tienes que crear un archivo con
extensin .list, algo como "jessie-backports.list". Dentro colocas el cdigo:

deb http://ftp.debian.org/debian jessie-backports main

Debian 7 (wheezy)

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 18 de 23
Manual de administracin de servidores Linux

Para la versin anterior de Debian el procedimiento es un poco diferente. Tienes que obtener
una copia del ejecutable certbot-auto como este comando:

wget https://dl.eff.org/certbot-auto

Luego le agregas permisos de ejecucin.

chmod a+x certbot-auto

Ejecutar certbot para generar los certificados


Si te fijas, para Debian 8 y para Debian 7 al instalar certbot obtendrs dos resultados distintos:

En el caso de Debian 8, donde s existe certbot como paquete para el sistema, habrs
instalado el comando "certbot". Como todo comando, simplemente lo escribes en la
consola y listo.
En el caso de Debian 7, donde no existe cerbot en los repositorios, entonces te has
descargado el ejecutable "certbot-auto". Para ejecutarlo tienes que escribir la ruta a
donde has descargado ese ejecutable: "./ruta/a/certbot-auto

Sea el caso que sea no habr mucha diferencia de cmo vas a generar los certificados, pero el
comando es ligeramente distinto. Enseguida veremos las diferencias.

Instalacin y configuracin de Apache automtica

El programa certbot, o certbot-auto en el caso de Debian 7, puede hacer todas las


configuraciones de manera automtica, en el caso que ests usando Apache. Simplemente se lo
indicas como opcin en el comando.

Para Debian 8 ejecutas:

certbot --apache

Para Debian 7 ejecutas (suponiendo que ests situado en la misma carpeta donde est el
ejecutable certbot-auto):

./certbot-auto --apache

En mi caso esta configuracin automtica no me funcion, as que si te ocurre a ti tambin, no


queda otra que pasar al plan "b", la configuracin manual.

Generacin de los certificados y configuracin manual

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 19 de 23
Manual de administracin de servidores Linux

El comando certbot, o certbot-auto, tambin puede generar los certificados y dejarlos en una
carpeta de tu sistema, con lo que consigues tu objetivo igualmente. Lo que pasa es que luego
tendrs que configurar a mano el virtual host de Apache. Veremos este proceso ahora.

En principio simplemente tienes que agregar al comando la opcin "certonly" y entrars en un


asistente para recabar informacin de tu sistema y los dominios que quieras configurar. Pero
tambin puedes hacer un comando ms complejo con el que puedes generar las distintas
opciones de una manera detallada, con lo que te ahorras el asistente.

Para Debian 8 haras algo como esto:

certbot certonly --webroot -w /var/www/desarrolloweb.com/docs/ -d www.desarrolloweb.com -d desarrolloweb.com

Bsicamente estamos indicando la ruta del directorio raz de publicacin (document root) y
luego los dominios que deben asociarse al certificado. en mi caso se puede acceder al dominio
con las "www" y sin ellas, por eso se colocan dos dominios.

Para Debian 7 la cosa es casi idntica, solo que usas certbot-auto y su path.

./certbot-auto certonly --webroot -w /var/www/desarrolloweb.com/httpdocs/ -d www.desarrolloweb.com -d desarrolloweb.com

Al procesar ese comando debes encontrar una salida que comprueba los dominios y te va
informando del proceso. Algo como esto:

Al generar los certificados vers un mensaje de felicitaciones, en el que encontrars la ruta


donde se han almacenado en tu sistema.

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 20 de 23
Manual de administracin de servidores Linux

La carpeta donde estn los certificados ser algo como esto:


"/etc/letsencrypt/live/www.desarrolloweb.com/". Recurdala porque luego la vamos a
necesitar.

Configurar Apache
Ahora toca configurar Apache, editando el archivo de los host virtuales (virtualhost).

Nota: Tericamente, si te funcion la configuracin automtica para Apache, no tendras


necesidad de hacer este paso.

La carpeta de los VHost est en:

cd /etc/apache2/sites-available/

Una vez all tendras que localizar la configuracin del Virtual Host para el dominio al que le
has generado el certificado. Usa tu editor preferido de consola, para mi es "Vim", pero muchos
prefieren "Nano" por ser ms sencillo.

vim desarrollowebcom

Encontrars la configuracin para el Host virtual en el puerto 80. Se trata de copiar y pegar esa
configuracin y crearla para el puerto 443 que es el de HTTPS.

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 21 de 23
Manual de administracin de servidores Linux

Buscas:

<VirtualHost *:80>

Copias y pegas todo lo que hay entre esa etiqueta y su cierre, y editas el puerto.

<VirtualHost *:443>

Para la parte del SSL tienes que meter las siguientes instrucciones adicionales:

SSLEngine on

SSLCertificateFile /etc/letsencrypt/live/www.desarrolloweb.com/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/www.desarrolloweb.com/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/www.desarrolloweb.com/chain.pem

En ese cdigo es donde tienes que colocar las rutas a la carpeta adecuada de tu servidor donde
se han generado los certificados. Obviamente no vas a colocar nuestro nombre de dominio ;)

Adems, para el virtualhost del puerto 80 querrs generalmente agregarle estra otra
instruccin, que permite que todo el trfico generado para HTTP se redirija a HTTPS.

Redirect permanent / https://desarrolloweb.com/

Con eso ya est todo, pero tenemos que reiniciar Apache. Para asegurarte de no romper nada
antes ejecutars el comando:

apache2ctl -t

Las cosas que pueden funcionar mal en este punto son fciles de identificar con la salida de
este comando. Una de ellas es que tengas soporte para SSL en el servidor.

El correspondiente mdulo de Apache lo instalas con:

sudo a2enmod ssl

Adems, si hay algn error en la ruta de los certificados te lo advertir. Simplemente ten
cuidado de copiar y pegar bien las rutas que encontraste al generar el certificado con certbot.

En el momento que te diga "Syntax OK" puedes reiniciar Apache. En mi caso lo hago con el
comando:

/etc/init.d/apache2 restart

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 22 de 23
Manual de administracin de servidores Linux

Acceder por https:// a tu sitio y resolver problemas adicionales


Si todo ha ido bien podrs acceder ya a tu dominio por https:// y ver el ansiado mensaje de "Es
seguro".

Pero si no es as, no desesperes, quizs tengas que solucionar alguna cosa de tu cdigo.
Bsicamente lo que nos pasa a nosotros en muchas pginas es que estamos accediendo a
recursos por http en lugar de https.

Nota: Tu sitio HTTPS debe acceder a todo contenido externo tambin por HTTPS, si usas
http para acceder a scripts, imgenes, fonts, etc. Entonces Chrome te alertar y no vers el
mensaje correspondiente de sitio seguro.

En caso que no obtengas el aviso de sitio seguro abre la consola de desarrolladores para ver los
errores que encuentras. Puede que veas algo como esto:

Solo tienes que resolver las rutas que estn dando problemas por tener acceso a recursos no
seguros. Seguramente despus de resolver eso puedas dar por finalizada la tarea con xito.

Solo te queda configurar las renovaciones automticas del certificado, pero eso te lo contar en
un artculo en breve. Es una tarea importante, dado que el certificado dura tan solo 3 meses.

Este artculo es obra de Miguel Angel Alvarez


Fue publicado por primera vez en 13/02/2017
Disponible online en http://desarrolloweb.com/articulos/instalar-certificado-ssl-lets-
encrypt.html

http://desarrolloweb.com/manuales/administracion-servidores-linux.html Pgina 23 de 23

You might also like