GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare più certificati SSL su un VPS CentOS con Apache utilizzando un indirizzo IP

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.


Cent OS
  1. Come configurare gli host virtuali Apache su CentOS

  2. Come configurare più SSL su un IP con Nginx

  3. Come installare WordPress Multisite su Centos VPS con Apache

  4. Come installare PhpWiki su un VPS CentOS 7

  5. Come installare Apache 2.4.2 da Source su CentOS 6.2 con SSL

Come configurare Let's Encrypt certificato SSL con Apache su CentOS 8 / RHEL 8 e CentOS 7 / RHEL 7

Come impostare un indirizzo IP statico in CentOS Linux

Come installare Let's Encrypt SSL con Apache su CentOS 7

Come configurare WebDAV utilizzando Apache su CentOS 7

Come installare il certificato SSL gratuito per Apache su CentOS 8

Come proteggere Apache con Let's Encrypt SSL Certificate su CentOS 8