Importar certificado SSL de IIS e implementarlo en un WebServer Linux

Este artículo pretende explicar como implementar en un servidor Linux de la familia Redhat (Redhat, CentOS, Fedora, etc) un certificado wildcard SSL originalmente expedido e instalado en un WebServer IIS.

**Pre-requisitos.
**Debemos exportar el conjunto de certificados (en formato .pfx) que ya están instalados en el IIS y copiarlos a nuestra maquina Linux:

Instalación y Configuración.

1. Instalamos el modulo de criptografía de Apache:

[root@ldapclt ~]# yum -y install mod_ssl

2. Extraer el certificado y el key:

[root@linuxhost ~]# openssl pkcs12 -in example.com.pfx -clcerts -nokeys -out <host>.example.com.cer
[root@linuxhost ~]# openssl pkcs12 -in example.com.pfx -nocerts -nodes -out <host>.example.com.key

3. Copiamos los archivos resultantres en sus respectivas ubicaciones:

[root@linuxhost ~]# rsync -av <host>.example.com.cer /etc/pki/tls/certs/
[root@linuxhost ~]# rsync -av <host>.example.com.key /etc/pki/tls/private/

4. Editamos el archivo /etc/httpd/conf.d/ssl.conf de tal suerte que declaremos que es un

 wildcard:

5. También en este archivo nos aseguramos que estén las rutas al certificado y el key:

6. En adelante el  no lo vamos a seguir configurando en el archivo httpd.conf

 si no en el archivo ssl.conf.Si nuestro hosting está en la ubicación estándar (/var/www/html)

7. Restauramos la configuración default de SELinux

[root@linuxhost ~]#restorecon -R /var/www/html/*

8. Habilitamos SELinux

[root@linuxhost ~]#setenforce 1

9. Creamos una excepción para IPTABLES 

[root@linuxhost ~]#iptables -A INPUT -p tcp -M state --state NEW -m tcp --dport 443 -J ACCEPT

10. Reiniciamos Apache 

[root@linuxhost ~]#/etc/init.d/httpd restart

Pruebas.

En este punto ya podemos ver el certificado funcionando en nuestro sitio cuando lo 

invocamos por “https”

Bonus Track.

Podemos configurar el apache para que redireccione todos los requerimientos que lleguen 

al sitio por “http” al “https” dentro de la etiqueta añadimos las siguientes lineas (esto si en el httpd.conf):

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Finalmente reiniciamos Apache.

[root@linuxhost ~]#/etc/init.d/httpd restart