Ricerca nel sito web

Come creare chiavi e certificati SSL autofirmati per Apache su RHEL/CentOS 7.0


SSL (Secure Sockets Layer) è un protocollo crittografico che consente il flusso di dati sicuro tra un server e i suoi client utilizzando chiavi simmetriche/asimmetriche utilizzando un certificato digitale firmato da un'autorità di certificazione (CIRCA).

Requisiti

  1. Installazione LAMP di base su RHEL/CentOS 7.0

Questo tutorial fornisce un approccio su come impostare il protocollo crittografico di comunicazione Secure Sockets Layer (SSL) sul server Web Apache installato in Red Hat Enterprise Linux/CentOS 7.0< e generare certificati e chiavi autofirmati con l'aiuto di uno script bash che semplifica notevolmente l'intero processo.

Passaggio 1: installa e configura Apache SSL

1. Per abilitare SSL sul server HTTP Apache, utilizzare il seguente comando per installare il modulo SSL e il kit di strumenti OpenSSL necessari per il supporto SSL/TLS.

yum install mod_ssl openssl

2. Dopo aver installato il modulo SSL, riavvia il demone HTTPD e aggiungi una nuova regola firewall per garantire che la porta SSL – 443 – sia aperta a connessioni esterne sulla macchina in stato di ascolto.

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

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

3. Per testare la connessione SSL, apri un browser remoto e accedi all'indirizzo IP del tuo server utilizzando il protocollo HTTPS su https://server_IP.

Passaggio 2: crea certificati e chiavi SSL

4. La precedente comunicazione SSL tra il server e il client è stata eseguita utilizzando un certificato e una chiave predefiniti generati automaticamente al momento dell'installazione. Per generare nuove chiavi private e coppie di certificati autofirmati, creare il seguente script bash su un percorso di sistema eseguibile (` PATH).

Per questo tutorial è stato scelto il percorso /usr/local/bin/, assicurati che lo script abbia il bit eseguibile impostato e, quindi, usalo come comando per creare nuove coppie SSL su /etc/ httpd/ssl/ come percorso predefinito di certificati e chiavi.

nano /usr/local/bin/apache_ssl

Utilizzare il seguente contenuto del file.

#!/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. Ora rendi eseguibile questo script e avvialo per generare una nuova coppia di certificato e chiave per il tuo host virtuale SSL Apache.

Compilalo con le tue informazioni e presta attenzione al valore Nome comune in modo che corrisponda all'FQDN del tuo server o, in caso di hosting virtuale, all'indirizzo Web a cui accederai quando ti collegherai a un sito Web sicuro.

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

6. Dopo che il certificato e la chiave sono stati generati, lo script presenterà un lungo elenco di tutte le coppie SSL Apache archiviate nella posizione /etc/httpd/ssl/.

7. Un altro approccio per generare certificati e chiavi SSL è installare il pacchetto crypto-utils sul tuo sistema e generare coppie utilizzando il comando genkey, che può impone alcuni problemi soprattutto se utilizzato sullo schermo di un terminale Putty.

Quindi, suggerisco di utilizzare questo metodo solo quando sei collegato direttamente a un monitor.

yum install crypto-utils
genkey your_FQDN

8. Per aggiungere il nuovo certificato e chiave al tuo sito Web SSL, apri il file di configurazione del tuo sito Web e sostituisci le istruzioni SSLCertificateFile e SSLCertificateKeyFile con le nuove coppie posizione e nomi di conseguenza.

9. Se il certificato non è emesso da una CA – Autorità di certificazione attendibile o il nome host del certificato non corrisponde al nome host che ha stabilito la connessione, dovrebbe apparire un errore sul tuo browser e devi accettare manualmente il certificato.

Questo è tutto! Ora puoi utilizzare apache_sslcome riga di comando su RHEL/CentOS 7.0 per generare tutte le coppie di certificati e chiavi autofirmati di cui hai bisogno e tutto verrà mantenuto su /etc/httpd/ ssl/ con il file chiave protetto con permessi 700.