The wikis are now using the new authentication system.
If you did not migrate your account yet, visit https://idp-portal-info.suse.com/

SDB:Crear un sitio web SSL con Apache2

Saltar a: navegaci贸n, buscar
Geeko Esta p谩gina describe como crear un sitio web con seguridad SLL en el servidor web Apache en openSUSE.


Versi贸n: 11.3+El art铆culo se puede aplicar a las versiones de openSUSE a聽partir de la 11.3.


Introducci贸n

SSL, Secure Sockets Layer (en espa帽ol 芦capa de conexi贸n segura禄) proporciona autenticaci贸n y privacidad de la informaci贸n entre extremos sobre Internet mediante el uso de criptograf铆a. SSL implica una serie de fases b谩sicas:

  • Negociar entre las partes el algoritmo que se usar谩 en la comunicaci贸n
  • Intercambio de claves p煤blicas y autenticaci贸n basada en certificados digitales
  • Cifrado del tr谩fico basado en cifrado sim茅trico

Esta funcionalidad est谩 disponible en el servidor web Apache

Requisitos

Lo primero que tendremos que hacer es dirigirnos nuevamente al directorio /etc/sysconfig y abrir el archivo apache2, donde tendremos que verificar que el m贸dulo ssl est茅 definido en la directiva APACHE_MODULES:

APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5"

Tambi茅n, en el mismo archivo tenemos que verificar que la directiva APACHE_SERVER_FLAGS sea igual a SSL como se muestra a continuaci贸n, sino editarlo y guardar el archivo:

APACHE_SERVER_FLAGS="-D SSL"

Tenemos que verificar que Apache est茅 correctamente configurado para que escuche en el puerto indicado para las conexiones seguras, puerto 443, para ello abrimos el archivo /etc/apache2/listen.conf que deber铆a tener el siguiente contenido:

Listen 80
<IfDefine SSL>
    <IfDefine !NOSSL>
	<IfModule mod_ssl.c>

	    Listen 443

	</IfModule>
    </IfDefine>
</IfDefine>

No hay que olvidarse de abrir el puerto 443 en el firewall de nuestro servidor, esto lo podemos hacer f谩cilmente desde YaST2 鈥> Seguridad y usuarios 鈥> Cortafuegos 鈥> Servicios Autorizados agregando a la lista de la zona que est谩 asociada a nuestra placa de red el nombre del servicio a autorizar, en este caso Servidor HTTPS

12.1 Habilitaci贸n ServidorHTTPS Firewall.png

Generaci贸n del certificado

Existen diferentes formas de generar el certificado que acredite las conexiones seguras.

Generaci贸n del certificado b谩sico

El certificado generado de esta manera carece de sentido profesional, ya que no posee informaci贸n alguna de la entidad emisora y no generar铆a confianza, para ello se ejecuta desde la consola la siguiente orden y se obtendr谩 la salida:

sudo /usr/bin/gensslcert
comment         mod_ssl server certificate
name
C               XY
ST              unknown
L               unknown
U               web server
O               SuSE Linux Web Server
CN              linux-7cqa.site
email           webmaster@linux-7cqa.site
srvdays         730
CAdays          2190

creating CA key ...
3105122 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
..........................................+++
..............................+++
e is 65537 (0x10001)

creating CA request/certificate ...
芦/etc/apache2/ssl.crt/ca.crt禄 -> 芦/srv/www/htdocs/CA.crt禄

creating server key ...
3105122 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
............................................................................++++++
.............++++++
e is 65537 (0x10001)

creating server request ...
creating server certificate ...
Signature ok
subject=/C=XY/ST=unknown/L=unknown/O=SuSE Linux Web Server/OU=web server/CN=linux-7cqa.site/emailAddress=webmaster@linux-7cqa.site
Getting CA Private Key

Verify: matching certificate & key modulus

Verify: matching certificate signature
/etc/apache2/ssl.crt/server.crt: OK  

Este comando sobre escribir谩 los siguientes archivos:

  • /etc/apache2/ssl.crt/ca.crt
  • /etc/apache2/ssl.key/server.key
  • /etc/apache2/ssl.crt/server.crt
  • /etc/apache2/ssl.csr/server.csr

Tambi茅n crear谩 un nuevo archivo CA.crt en el directorio /srv/www/htdocs/ para ser descargado por los clientes que se conectan bajo el protocolo https. Luego hay que crear una copia del archivo /etc/apache2/vhosts.d/vhost-ssl.template y renombrarlo a /etc/apache2/vhosts.d/vhost-ssl.conf. V茅ase el certificado creado:

linux-7cqa.site
Identidad: linux-7cqa.site
Verificado por: linux-7cqa.site
Caduca: 31/01/18

Nombre del asunto
C (Pa铆s):	XY
ST (Estado):	unknown
L (Localidad):	unknown
O (Organizaci贸n):	SuSE Linux Web Server
OU (Unidad de organizaci贸n):	CA
CN (Nombre com煤n):	linux-7cqa.site
EMAIL (Direcci贸n de correo electr贸nico):	webmaster@linux-7cqa.site
Nombre del emisor
C (Pa铆s):	XY
ST (Estado):	unknown
L (Localidad):	unknown
O (Organizaci贸n):	SuSE Linux Web Server
OU (Unidad de organizaci贸n):	CA
CN (Nombre com煤n):	linux-7cqa.site
EMAIL (Direcci贸n de correo electr贸nico):	webmaster@linux-7cqa.site
Certificado emitido
Versi贸n:	1
N煤mero de serie:	00 B1 C2 68 67 75 E5 64 7F
No es v谩lido antes de:	2012-02-02
No es v谩lido despu茅s de:	2018-01-31
Huellas de certificados
SHA1:	A2 01 69 3E 07 EE 43 29 0A 69 BC F9 2B 4E C3 C1 7A BF 35 CC
MD5:	77 42 8E B6 3D 2A 79 1B 3F 65 63 9C FD 30 25 FA
Firma
Algoritmo de firma:	SHA1 con RSA
Par谩metros de la firma:	05 00
Firma:	87 29 DF 45 2A B9 94 1C 08 B2 B2 C9 68 7A 8C 98 0F C1 9A 8C E9 66 32 AE 70 3F 6D CD 53 F3 96 B4 91 BB 60 4C 37 7B ED CD 16 0A F7 54 A0 27 E6 32 5A 00 C2 0E D7 3F 5D 07 3D B3 6C 84 A3 FC 89 2C C1 13 4C 6B 2F 6F 52 73 03 5C AE 11 69 BC 57 0C 6B 5E 9E 87 F4 7C 28 13 F9 EF FE A0 0C 73 09 FF D4 EE 88 35 82 6D 00 78 EF 14 C5 97 CC 22 11 19 15 5E 6B 4D 98 BA D0 5E E5 E6 59 15 02 15 75 0B 10 27 3A 4F A5 38 06 BA 63 6C 67 A9 89 7B F0 FB EF CD 48 1E 83 33 09 84 3B C9 58 25 A4 5E E5 32 9E 4C 70 F4 04 98 C5 70 8D FE FB BA 9B 3C E8 0E 1F 8C 2B 3A 7C E9 E6 F0 07 52 1B 1A D5 CB 3D 70 56 E1 4C A1 92 12 15 DA E9 B0 70 34 52 69 1C 67 AB B5 9C 8A BD 4B 2E DC 40 9F D7 7F E4 9C 87 CD 53 47 F3 69 AC D5 BF 63 9B 5C 08 1B 9E 1E D5 28 CA EE 68 0C 9E D7 1A 27 CE E8 34 34 11 D1 A7 01
Informaci贸n de la clave p煤blica
Clave del algoritmo:	RSA
Par谩metros de la clave:	05 00
Tama帽o de la clave:	2048
Huella de la clave SHA1:	42 BB D6 B1 ED D5 09 78 6A 94 70 8A 07 4C 83 9A FC 4D 79 BE
Clave privada:	30 82 01 0A 02 82 01 01 00 C0 CC C2 AD C2 3A 30 AA 2F B6 75 FC 8D 76 D2 73 C1 DE FC 90 45 5C 07 02 62 5E 05 FD 30 92 97 AE 6C D2 15 82 98 A1 A8 55 D4 F5 39 F3 50 98 92 3C A1 FA 42 B0 AF 69 49 0C D0 5E F0 37 66 77 6F 62 C2 B3 FB 4D D8 2F 21 92 C9 0A 5F B6 FF EC BC 4E 5D CC 4C AF 50 EE 59 EE 61 B4 CF 93 15 4A CE FA BC A0 CA F4 32 B2 41 36 AD 32 3B 83 F2 66 07 3F F7 AF 3A 77 C8 3A EA D5 4C 4F FF 1E A1 B7 A7 55 02 31 B5 73 38 A6 11 77 8E 6C 27 69 CE B9 14 93 E5 B3 D9 A2 B4 F2 7F 9D C3 74 E4 AD 20 55 FE 95 3B A5 F8 5C 11 66 9E 2D E1 7C 07 78 CF 1D 43 EE 98 58 2D D5 9E EF A3 B1 E5 C2 E0 D6 FC 9C 4F 73 8E B2 EE 7E 8F 26 4F 7F A6 9D 48 F3 03 73 CA 94 C9 EC 07 54 2F 0E 97 43 18 30 13 13 AB 92 4C 67 B9 4A 2E 6D 33 FB 55 E0 34 A2 80 32 29 98 C4 D9 4C 2C 27 CD 94 2D 9E 27 61 A4 5C 71 10 EE 6E 9D 02 03 01 00 01

En 茅l se puede observar la ausencia de datos de la entidad emisora y m谩s datos de inter茅s que llevar铆an consigo una desconfianza por parte de sus usuarios.

Con esto hemos creado un host virtual exclusivo para las conexiones seguras, reiniciamos el servidor apache con el comando service apache2 restart y verificamos la configuraci贸n de nuestro virtual host con el comando:

httpd2 -S -DSSL

Generaci贸n del certificado con informaci贸n adicional

Para evitar el caso anterior, debemos generar un certificado con informaci贸n relevante y con un car谩cter m谩s responsable podemos ir indic谩ndole algunos datos complementarios al comando gensslcert para enriquecer el contenido del certificado. La siguiente tabla muestra las opciones disponibles para anexar informaci贸n al certificado:

Par谩metros comando gensslcert
Par谩metro Descripci贸n
-C Nombre com煤n
-N Comentario
-c Pa铆s. Solo expresado en 2 letras Ej: ES, AR, BR, etc.
-s Estado, Provincia o Departamento
-l Ciudad
-o Organizaci贸n
-u Unidad Organizacional
-n Nombre de Dominio Totalmente Expresado
-e Direcci贸n de Correo Electr贸nico del Administrador
-y D铆as de validez del Certificado del Servidor (Certificado Privado)

Habr谩 que ejecutar el comando con las opciones necesarias, en este caso:

gensslcert 颅-C "openSuseSSL" 颅-N "Este es un Certificado de Ejemplo" -颅c ES 颅-s Madrid 颅-l "Madrid" 颅-o "openSuse Spain." 颅-u "Unidad Seguridad Informatica" -颅n http://www.forosuse.org/" 颅-e "admin@forosuse.org" -颅y 60

Esta es la salida una vez ejecutado el comando:

comment         Este es un Certificado de ejemplo
name            openSuseSSL-
C               ES
ST              Madrid
L               Madrid
U               Unidad Seguridad Inform谩tica
O               openSuse Spain.
CN              http://www.forosuse.org
email           admin@forosuse.org
srvdays         60
CAdays          2190

creating CA key ...
3129616 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
.......................+++
.........+++
e is 65537 (0x10001)

creating CA request/certificate ...
芦/etc/apache2/ssl.crt/openSuseSSL-ca.crt禄 -> 芦/srv/www/htdocs/OPENSUSESSL-CA.crt禄

creating server key ...
3129616 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
..++++++
...................................++++++
e is 65537 (0x10001)

creating server request ...
creating server certificate ...
Signature ok
subject=/C=ES/ST=Madrid/L=Madrid/O=openSuse Spain./OU=Unidad Seguridad Inform\xC3\xA1tica/CN=http://www.forosuse.org/emailAddress=admin@forosuse.org
Getting CA Private Key

Verify: matching certificate & key modulus

Verify: matching certificate signature
/etc/apache2/ssl.crt/openSuseSSL-server.crt: OK

Al ejecutar el comando se crear谩n una serie de archivos inicialmente llamados con el nombre openSuseSSL en los siguientes directorios:

  • /etc/apache2/ssl.crt/openSuseSSL-ca.crt
  • /etc/apache2/ssl.crt/openSuseSSL-server.crt
  • /etc/apache2/ssl.csr/openSuseSSL-颅server.csr
  • /etc/apache2/ssl.key/openSuseSSL-颅ca.key
  • /etc/apache2/ssl.key/openSuseSSL-server.key
  • /srv/www/htdocs/OPENSUSESSL-颅CA.crt

Si queremos que 茅ste sea el certificado utilizado para la autenticaci贸n tendremos que copiar el archivo vhost-ssl.template en el directorio /etc/apache2/vhosts.d/ con el nombre vhost-ssl.conf

cp vhost-ssl.template vhost-ssl.conf

y modificar las directivas que se citan a continuaci贸n con los nuevos nombres mencionados anteriormente:

  • SSLCertificateFile /etc/apache2/ssl.crt/openSuseSSL-server.crt
  • SSLCertificateKeyFile /etc/apache2/ssl.key/openSuseSSL-server.key

Por 煤ltimo debemos reiniciar el servidor Apache para que los cambios tengan efecto y el nuevo certificado entre en funcionamiento, si tratamos de acceder a cualquiera de nuestros repositorios v铆a https en, por ejemplo Firefox, el servidor emitir谩 el certificado con la informaci贸n que hemos introducido. La siguiente ser铆a la informaci贸n de nuestro certificado.

http://www.forosuse.org
Identidad: http://www.forosuse.org
Verificado por: http://www.forosuse.org
Caduca: 31/01/18

Nombre del asunto
C (Pa铆s):	ES
ST (Estado):	Madrid
L (Localidad):	Madrid
O (Organizaci贸n):	openSuse Spain.
OU (Unidad de organizaci贸n):	CA
CN (Nombre com煤n):	http://www.forosuse.org
EMAIL (Direcci贸n de correo electr贸nico):	admin@forosuse.org
Nombre del emisor
C (Pa铆s):	ES
ST (Estado):	Madrid
L (Localidad):	Madrid
O (Organizaci贸n):	openSuse Spain.
OU (Unidad de organizaci贸n):	CA
CN (Nombre com煤n):	http://www.forosuse.org
EMAIL (Direcci贸n de correo electr贸nico):	admin@forosuse.org
Certificado emitido
Versi贸n:	1
N煤mero de serie:	00 91 6A DC 3E 2E 12 37 31
No es v谩lido antes de:	2012-02-02
No es v谩lido despu茅s de:	2018-01-31
Huellas de certificados
SHA1:	46 2E 64 20 A8 5C C4 DA 04 35 C5 3A 5E CE F7 95 E5 F4 EE 0E
MD5:	37 20 A6 42 2E B4 6C 37 4B E2 72 F0 EF 99 43 F2
Firma
Algoritmo de firma:	SHA1 con RSA
Par谩metros de la firma:	05 00
Firma:	A7 D7 9F 76 18 A9 00 A9 61 A5 12 8B 3C F4 22 D3 B2 9F C7 D0 2F 95 B4 2C 1E 5A C6 D4 E2 AC 64 34 A6 D9 82 B6 96 78 6C 4D E7 8B 9C 0E 57 CC 55 3F A7 92 91 E8 AE 74 F3 61 E1 B3 39 58 65 EF 66 44 9A F6 64 79 FD CE BF A8 84 17 F1 C0 5E 40 5D 80 DC 0A CE 8B 54 09 AD D9 C9 30 B3 A5 97 26 08 8F B6 C5 F9 FD 4F 65 DD E2 67 20 32 66 94 48 00 23 77 59 DD 88 9E 3B 45 DB 0C 08 B0 22 B7 5F 18 2A DE 8B B8 86 9F D7 CD 18 0C 33 CB 75 20 53 89 7F 70 35 5C 40 9B FF 8A A9 C4 59 55 67 CA 76 7E 02 D0 A3 A8 9C 91 9F B0 C2 D3 7F 62 16 EC 40 C0 3D 21 9B 3D 93 83 06 83 75 3A 8A 42 F7 86 76 08 47 1B 15 5A 8B 9B 6B 30 DA 13 5C EB 12 1F 90 26 A6 13 0B 47 C6 02 82 E4 44 98 FB 37 67 32 AD 3A 47 9C C8 4B E5 A4 7E E2 A1 76 F9 00 2C 9B 3F 56 52 FE 4D 24 DE AE 11 98 85 38 23 80 45 88 3D CA C8
Informaci贸n de la clave p煤blica
Clave del algoritmo:	RSA
Par谩metros de la clave:	05 00
Tama帽o de la clave:	2048
Huella de la clave SHA1:	55 3E 6C 09 2E 2A CD AD 05 A3 EC A4 30 47 5F 74 D9 40 89 18
Clave privada:	30 82 01 0A 02 82 01 01 00 AA 74 C8 7F 92 C8 92 13 EF 03 A5 D8 D5 99 8A B4 57 58 E6 33 42 A3 6C 6E 41 EE B7 93 FC C4 56 E9 3D 8C 97 8F 06 77 26 BA FA 82 08 86 5E A5 A5 2A FA DA 39 A0 94 00 B7 86 7F DE FE 41 FC 84 C3 40 8F 3B 72 65 83 2A 65 A7 50 0D 4E A6 F3 42 E8 41 32 B8 96 D8 18 6D AB 33 AE 31 61 1B 9B 12 4D 08 D9 14 29 80 F6 10 49 80 A9 CE 22 0E C6 D7 73 9E EF 07 E1 0A 27 85 67 0F 81 A4 D7 80 58 B1 09 F4 79 AF 34 60 3C 95 46 35 73 DB 52 E3 34 8F 7F C4 39 37 31 60 F5 8F 41 A2 3C FE F9 AE 5B 6F 17 34 40 E5 3D 14 8D 1F 72 F7 55 DE 0D 83 86 7F 11 76 DB 4F 03 F9 41 8B B0 B3 6C DA E3 B8 FC 01 93 1F 67 0F F6 05 28 6A 0E AF 28 E0 9C D7 58 D2 0C A7 A9 B4 74 CB C4 48 D4 66 7C 64 8B 3C FD 93 6D 8F E3 70 E5 D6 D1 31 DF 01 BD E4 0F 31 B6 DE B3 0F CC D5 C3 92 A8 90 6E F0 E2 55 D4 7A 10 C6 ED 39 02 03 01 00 01