In questo tutorial ti mostreremo come configurare più certificati SSL su un VPS CentOS con Apache utilizzando un solo indirizzo IP.
Ciò è consentito da un'estensione del protocollo SSL denominata Server Name Indication (SNI). La maggior parte dei browser Web desktop e mobili attuali supporta SNI. Il vantaggio principale dell'utilizzo di SNI è la possibilità di proteggere più siti Web senza acquistare più indirizzi IP.
Assicurati che il modulo di sicurezza mod_ssl sia installato e abilitato in modo che il server Web Apache possa utilizzare la libreria e il toolkit OpenSSL:
yum install mod_ssl openssl
Esegui i seguenti comandi:
mkdir -p /etc/httpd/ssl/ mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak cd /etc/httpd/ssl/
Genera file di richiesta di firma del certificato SSL (CSR) per i tuoi domini:
openssl genrsa -out domain1.key 2048 openssl req -new -key domain1.key -out domain1.csr openssl genrsa -out domain2.key 2048 openssl req -new -key domain2.key -out domain2.csr
e inserisci i seguenti dettagli per i tuoi certificati:
- Nome del Paese
- Nome Stato o Provincia
- Nome località
- Nome organizzazione
- Nome dell'unità organizzativa
- Indirizzo email
Quando viene richiesto il nome comune (ovvero il nome di dominio), immettere l'FQDN (nome di dominio completo) per il sito Web che si sta proteggendo.
Si consiglia di installare certificati SSL commerciali se utilizzati in un ambiente di produzione. Oppure, genera e utilizza certificati SSL autofirmati quando stai solo sviluppando o testando un sito Web o un'applicazione utilizzando i seguenti comandi:
openssl x509 -req -days 365 -in domain1.csr -signkey domain1.key -out domain1.crt openssl x509 -req -days 365 -in domain2.csr -signkey domain2.key -out domain2.crt
Modifica il file di configurazione di Apache 'ssl.conf':
vi /etc/httpd/conf.d/ssl.conf
e aggiungi le seguenti righe:
LoadModule ssl_module modules/mod_ssl.so Listen 443 NameVirtualHost *:443 SSLPassPhraseDialog builtin SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin SSLStrictSNIVHostCheck off <VirtualHost *:443> DocumentRoot /var/www/html/domain1 ServerName domain1.com ServerAlias www.domain1.com SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/httpd/ssl/domain1.crt SSLCertificateKeyFile /etc/httpd/ssl/domain1.key #SSLCertificateChainFile /etc/httpd/ssl/ca.crt ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/html/domain2 ServerName domain2.com ServerAlias www.domain2.com SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/httpd/ssl/domain2.crt SSLCertificateKeyFile /etc/httpd/ssl/domain2.key #SSLCertificateChainFile /etc/httpd/ssl/ca.crt ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
Quando si utilizza un certificato SSL commerciale, è probabile che l'autorità di firma includa un certificato CA intermedio. In tal caso, crea un nuovo file '/etc/httpd/ssl/ca.crt' e incolla il contenuto della CA intermedia, quindi modifica il file di configurazione 'ssl.conf' e decommenta la seguente riga:
SSLCertificateChainFile /etc/httpd/ssl/ca.crt
in modo che il server Web Apache possa trovare il tuo certificato CA.
Testare la configurazione di Apache:
/etc/init.d/httpd configtest Syntax OK
Riavvia il servizio Apache per rendere effettive le modifiche:
service httpd restart
Apri https://domain1.com e https://domain2.com nel tuo browser web preferito e verifica che i certificati SSL siano installati correttamente.
Ovviamente non devi fare nulla di tutto ciò se utilizzi uno dei nostri servizi di hosting VPS Linux, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di impostare più certificati SSL sul tuo VPS per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS. Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.