Installa un certificato SSL su Apache Mod_SSL

Configurazione di Apache con SSL

Le seguenti istruzioni presuppongono che si desideri eseguire sia un server sicuro (su port 443) e un server regolare (su port 80). Innanzitutto, è necessario configurare il server per l'ascolto su entrambe le porte. O modifica /etc/apache2/ports.conf (in Debian; questo è incluso in apache2.conf) o modifica /etc/apache2/apache2.conf direttamente per includere le linee:

Ascolta 80 Ascolta 443

Quindi, modifica /etc/apache2/sites-enabled/yoursite per utilizzare le impostazioni SSL. Separare le impostazioni del server regolari e sicure utilizzando VirtualHosts è l'opzione più semplice in termini di manutenibilità. Qualsiasi configurazione al di fuori delle sezioni VirtualHosts (come l'impostazione di ServerAdmin) verrà applicata a entrambi (ea qualsiasi altro) VirtualHosts.

Nota: A partire da Apache 2.4.8, la pratica di mantenere il certificato del server e la catena di certificati intermedi in file separati è stata deprecata. Entrambi i metodi attuali e legacy sono dettagliati nelle schede cliccabili di seguito.
Apache 2.4.8 o versioni successiveApache 2.4.7 o precedente

Le versioni di Apache 2.4.8 e successive prevedono che il certificato del server venga concatenato con qualsiasi certificato intermedio in un file. Per scaricare un file concatenato da SSL.com, scegli il file Nginx link per il download nel tuo account del portale:

Nginx

In alternativa, è possibile concatenare il certificato esistente e i file intermedi con un comando simile al seguente:

$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

Aggiungi la seguente sezione al tuo file di configurazione:

# ================================================= # SSL /TLS impostazioni # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine su SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Alcune note su questa configurazione:

  • SSLEngine deve essere abilitato in modo che il server utilizzi SSL.
  • DocumentRoot imposta la directory principale per questo host virtuale. Ciò significa che è possibile separare completamente i contenuti protetti da quelli normali.
  • SSLCertificateFile dovrebbe essere impostato nella posizione in cui si inserisce il file con il certificato del server e la catena intermedia.
  • SSLCertificateKeyFile dovrebbe essere impostato nella posizione in cui hai inserito il file della chiave privata.

Aggiungi la seguente sezione al tuo file di configurazione:

# ================================================= # SSL /TLS impostazioni # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine su SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl / private client.crt

Alcune note su questa configurazione:

  • SSLEngine deve essere abilitato in modo che il server utilizzi SSL.
  • DocumentRoot imposta la directory principale per questo host virtuale. Ciò significa che è possibile separare completamente i contenuti protetti da quelli normali.
  • SSLCertificateFile, SSLCertificateChainFile, ed SSLCertificateKeyFile deve essere impostato nelle posizioni in cui vengono inseriti i file del certificato, della chiave intermedia e della chiave privata, rispettivamente.

Per eseguire il server normale sulla porta 80, aggiungere la seguente sezione al file di configurazione:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Configurazione della directory specifica dell'host, opzioni, ecc # La maggior parte di queste opzioni è probabile che venga impostata al di fuori delle sezioni VirtualHosts #.

Dopo aver salvato il file di configurazione modificato, riavviare il server web. Se hai utilizzato una passphrase durante la generazione del certificato, dovrai inserirla quando contestato.

Testing

Crea una pagina index.html di base ovunque si trovi la directory principale del tuo server web, se non hai già dei contenuti lì.

Quindi puntare il browser Web su https://www.yoursite.com. Dovresti vedere una connessione SSL aperta e la pagina consegnata. Se stai utilizzando un certificato autofirmato, il tuo browser visualizzerà un avviso che ti avvisa che l'identità del server non può essere verificata. Puoi scegliere di visualizzare e accettare il certificato. Se si utilizza un certificato esterno, tutto dovrebbe avvenire senza intervento.

Assicurati anche di non poter accedere al contenuto protetto utilizzando http: //. Se ci provi, dovresti ricevere un messaggio di errore.

Troubleshooting

Se non funziona come previsto, controlla prima che il tuo server sia effettivamente in esecuzione, utilizzando ps -a | grep apache. Se ciò non restituisce nulla, prova a riavviarlo e controlla i messaggi di errore sul terminale.

Verifica inoltre che le autorizzazioni per la tua chiave e i file del certificato siano impostate correttamente (vedi sopra), così come le autorizzazioni per il tuo file HTML di prova e la sua directory principale.

Quindi, controlla i log. Dovresti controllare sia i log del server principale che i log SSL che hai impostato nel tuo file di configurazione sopra. Se non ottieni nulla di utile, prova a modificare il valore LogLevel nel file di configurazione di Apache2 in "debug", riavvia Apache2 e prova di nuovo. Questo dovrebbe fornire più dati del file di registro.

Se stai eseguendo anche un normale server web sulla porta 80, prova a recuperare una pagina di prova tramite http: // anziché https: // per identificare se il problema è con il server web o con la connessione SSL. Nota che nella configurazione sopra, la directory principale del server web è diversa per http: // e https: //, quindi non sarai in grado (o non dovresti!) Di accedere allo stesso contenuto. Se la tua pagina di test nella directory http: // root funziona correttamente e la tua pagina di test nella directory https: // root non funziona, questo può aiutarti a individuare il problema.

Se il problema è la connessione SSL, uno strumento utile è s_client, che è uno strumento diagnostico per la risoluzione dei problemi TLS/ Connessioni SSL. L'utilizzo di base è: /usr/bin/openssl s_client -connect localhost:443. Esistono anche numerose altre opzioni, per le quali è possibile controllare la documentazione. Se ricevi messaggi di errore, questo dovrebbe aiutarti a localizzare il problema.

Grazie per aver scelto SSL.com! In caso di domande, contattaci tramite e-mail all'indirizzo Support@SSL.com, chiama 1-877-SSL-SECUREo fai semplicemente clic sul link della chat in basso a destra in questa pagina.

Iscriviti alla newsletter di SSL.com

Non perdere nuovi articoli e aggiornamenti da SSL.com

Rimani informato e sicuro

SSL.com è un leader globale nella sicurezza informatica, PKI e certificati digitali. Iscriviti per ricevere le ultime notizie del settore, suggerimenti e annunci di prodotti da SSL.com.

Ci piacerebbe il tuo feedback

Partecipa al nostro sondaggio e facci sapere cosa ne pensi del tuo recente acquisto.