Com crear certificats i claus SSL autofirmats per a Apache a RHEL/CentOS 7.0


SSL (Secure Sockets Layer) és un protocol criptogràfic que permet un flux de dades segur entre un servidor i els seus clients mitjançant claus simètriques/asimètriques mitjançant un certificat digital signat per una autoritat de certificació (CA).

  1. Instal·lació bàsica de LAMP a RHEL/CentOS 7.0

Aquest tutorial ofereix un enfocament sobre com configurar el protocol criptogràfic de comunicació Secure Sockets Layer (SSL) al servidor web Apache instal·lat a Red Hat Enterprise Linux/CentOS 7.0 i generar certificats i claus autofirmats amb el ajuda d'un script bash que simplifica enormement tot el procés.

Pas 1: instal·leu i configureu Apache SSL

1. Per habilitar SSL al servidor HTTP Apache, utilitzeu l'ordre següent per instal·lar el mòdul SSL i el conjunt d'eines OpenSSL necessaris per al suport SSL/TLS.

# yum install mod_ssl openssl

2. Un cop instal·lat el mòdul SSL, reinicieu el dimoni HTTPD i afegiu una nova regla de tallafoc per assegurar-vos que el port SSL – 443 – estigui obert a connexions externes a la vostra màquina en escolta. estat.

# systemctl restart httpd
# firewall-cmd --add-service=https   ## On-fly rule

# firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Per provar la connexió SSL, obriu un navegador remot i navegueu a l'adreça IP del vostre servidor mitjançant el protocol HTPS a https://server_IP.

Pas 2: creeu certificats i claus SSL

4. La comunicació SSL anterior entre el servidor i el client es va fer mitjançant un certificat i una clau per defecte generats automàticament en la instal·lació. Per generar nous parells de claus privades i certificats autofirmats, creeu l'script bash següent en una ruta del sistema executable (PATH).

Per a aquest tutorial, s'ha escollit la ruta /usr/local/bin/, assegureu-vos que l'script tingui configurat els bits executables i, a continuació, utilitzeu-lo com a ordre per crear nous parells SSL a /etc/ httpd/ssl/ com a ubicació predeterminada de certificats i claus.

# nano /usr/local/bin/apache_ssl

Utilitzeu el contingut del fitxer següent.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Ara feu que aquest script sigui executable i inicieu-lo per generar un nou parell de certificat i clau per al vostre host virtual Apache SSL.

Ompliu-lo amb la vostra informació i presteu atenció al valor del Nom comú perquè coincideixi amb el FQDN del vostre servidor o, en cas d'allotjament virtual, que coincideixi amb l'adreça web a la qual accedireu quan us connecteu a un lloc web segur.

# chmod +x /usr/local/bin/apache_ssl
# apache_ssl

6. Després de generar el certificat i la clau, l'script presentarà una llista llarga de tots els vostres parells SSL d'Apache emmagatzemats a la ubicació /etc/httpd/ssl/.

7. Un altre enfocament per generar certificats i claus SSL és instal·lar el paquet crypto-utils al vostre sistema i generar parells mitjançant l'ordre genkey, que pot imposar alguns problemes, especialment quan s'utilitza en una pantalla de terminal Putty.

Per tant, suggereixo utilitzar aquest mètode només quan esteu connectat directament a un monitor de pantalla.

# yum install crypto-utils
# genkey your_FQDN

8. Per afegir el certificat i la clau nous al vostre lloc web SSL, obriu el fitxer de configuració del vostre lloc web i substituïu les declaracions SSLCertificateFile i SSLCertificateKeyFile amb la ubicació i els noms dels nous parells corresponents.

9. Si el certificat no l'ha emès una autoritat de certificació de confiança o el nom d'amfitrió del certificat no coincideix amb el nom d'amfitrió que estableix la connexió, hauria d'aparèixer un error al vostre navegador i heu d'acceptar el certificat manualment.

Això és! Ara podeu utilitzar apache_sslcom a línia d'ordres a RHEL/CentOS 7.0 per generar tants parells de certificats i claus autofirmats que necessiteu, i tot es mantindrà a /etc/httpd/ ruta ssl/ amb el fitxer de claus protegit amb 700 permisos.