Numeri di porta per SSL

Abbiamo un sito web esistente con HTTP sulla porta 80 e HTTPS sulla porta 443. Sto aggiungendo un secondo sito a questo ora, e da quanto ho capito, non posso ospitare due siti sulla stessa porta SSL.

Quindi la mia domanda è: quale intervallo di numeri di porta è appropriato per me utilizzare come porta SSL sul secondo sito?

Commenti

  • Potrei sbagliarmi ma credo che una certificazione SSL valida richieda di essere sulla porta 443, e credo che questo sia il motivo per cui lhosting condiviso ti offre un Indirizzo IP quando si acquista un SSL. Ma … questo non è il mio campo, si spera che qualcun altro geek possa confermarlo.

Risposta

In realtà PUOI ospitare più siti SSL sulla porta 443. Il seguente codice nel tuo file di configurazione di apache farà il trucco.

Altrimenti, puoi usare qualunque porta tu voglia. Lo svantaggio sarà essere che gli utenti dovranno includere il numero di porta nellURL (ad es. https://yourdomain.com:445/ )

## SSL (HTTPS) PORT 443 Listen 443 NameVirtualHost *:443 LoadModule ssl_module modules/mod_ssl.so SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin <VirtualHost *:443> ServerName host1.com SSLEngine on SSLOptions +StrictRequire SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM SSLCertificateFile /etc/httpd/ssl/host1.crt SSLCertificateKeyFile /etc/httpd/ssl/host1.key SSLVerifyClient none SSLProxyEngine off 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" DocumentRoot /var/www/host1/ <Directory "/var/www/host1/"> Options Indexes FollowSymLinks AllowOverride All Order Allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:443> ServerName host2.com SSLEngine on SSLOptions +StrictRequire SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM SSLCertificateFile /etc/httpd/ssl/host2.crt SSLCertificateKeyFile /etc/httpd/ssl/host2.key SSLVerifyClient none SSLProxyEngine off 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" DocumentRoot /var/www/host2/ <Directory "/var/www/host2/"> Options Indexes FollowSymLinks AllowOverride All Order Allow,deny Allow from all </Directory> </VirtualHost> 

Commenti

  • Grazie, ma questo è un sito IIS. Qualche idea su come potrei procedere per fare lo stesso?

Risposta

Quando dici “secondo sito” – intendi un secondo nome di dominio? Come in, stai attualmente ospitando https://www.mycompany.com su un cluster e vuoi ospitare https://www.yourcompany.com sullo stesso cluster? Penso che quello che” stai cercando sia “hosting virtuale”: http://support.microsoft.com/kb/q190008

Dovrai comunque acquistare un secondo certificato SSL, ma sarai in grado di ospitare entrambi allo stesso Indirizzo IP sotto le porte standard (che, come minimo, aumenterà la fiducia degli utenti nel tuo sito).

Commenti

  • Ho usato host nomi di intestazione e i due siti sono nel formato first.mycompany.com e second.mycompany.com. Il problema è che in ” Identificazione avanzata del sito Web ” sono presenti tre colonne per HTTP (indirizzo IP, porta TCP e valore dellintestazione host) ma solo due per HTTPS (indirizzo IP e porta SSL), quindi ‘ in realtà non sembra possibile da quello che posso vedere.

Risposta

Tradizionalmente è necessario un indirizzo IP per vincolo SSL. Non è possibile aggiungere unintestazione host durante la configurazione delle associazioni. Il motivo è che lintestazione host fa parte delle intestazioni HTTP inviate dai browser e queste intestazioni sono crittografate come parte del traffico SSL. Per leggere lintestazione del nome host, il server deve prima decrittare il traffico, ma per farlo deve sapere quale certificato usare. Per questo avrebbe bisogno dellintestazione host per entrare in un circolo vizioso.

Una soluzione potrebbe essere che il server provi tutti i certificati installati e provi a decrittografare la richiesta. Anche se questo potrebbe funzionare con pochi certificati installati, non funzionerà per i server con decine o centinaia di siti Web SSL. Rallenterebbe drasticamente il server in quanto il server dovrebbe farlo per ogni richiesta in arrivo.

La soluzione per questo è unestensione del protocollo SSL denominata Server Name Indication (SNI) . Ciò aggiunge il nome host al protocollo SSL che consente al server di vedere lintestazione host prima che debba decrittografare il traffico SSL. Questa estensione non è supportata da nessuna versione di IIS precedente a IIS 8 (Windows 2012). Sul lato client SNI è supportato da OS X 10.5.6 e Windows Vista o versioni successive . SNI non è supportato da SChannel su Windows XP e quindi non è supportato da nessuna versione di Internet Explorer (anche 8.0) su Windows XP.

Risposta

In IIS (come con altri server web) ci sono tre identificatori chiave che identificano il tuo sito per le richieste in arrivo:

  1. indirizzo IP
  2. TCP porta
  3. Intestazione host

Se si eseguono più siti Web su un singolo server Web, almeno uno di questi tre deve essere diverso per ogni sito. In molti ambienti, a un server viene assegnato un solo indirizzo IP, quindi la porta TCP e lintestazione host possono essere modificate. È possibile eseguire un sito Web https su una porta diversa, devi solo specificare la porta nellURL che non è sempre desiderabile (sarebbe simile a https://www.foo.com:32000/index.html ). Il più delle volte, si desidera eseguire tutti i siti Web sulla porta 80 (http) o 443 (https) in modo da ottenere URL puliti. Ciò lascia quindi lintestazione host come lelemento che si desidera modificare.

In IIS, è possibile avere più siti sulla stessa combinazione IP / porta che utilizzano SSL e intestazioni host.La chiave è che è necessario utilizzare un certificato con caratteri jolly o un certificato SAN (Subject Alternative Names) che specifica più nomi host nel certificato stesso. Non è possibile impostare le associazioni delle intestazioni host per le intestazioni host su un sito SSL nellinterfaccia utente di Gestione IIS. Devi farlo tramite riga di comando o modificare manualmente il file applicationHost.config sul server.

Le informazioni di Technet sullimpostazione di questa impostazione tramite la riga di comando possono essere trovate qui .

Cera un post sul Forum IIS con un problema simile a questo che può essere trovato qui .

Dopo aver eseguito il comando o modificato manualmente il file di configurazione, il tuo file applicationHost.config potrebbe essere simile a questo:

<site name="first.mycompany.com"> ... <bindings> <binding protocol="http" bindingInformation="192.168.10.100:80:first.mycompany.com" /> <binding protocol="https" bindingInformation="192.168.10.100:443:first.mycompany.com" /> </bindings> ... </site> <site name="second.mycompany.com"> ... <bindings> <binding protocol="http" bindingInformation="192.168.10.100:80:second.mycompany.com" /> <binding protocol="https" bindingInformation="192.168.10.100:443:second.mycompany.com" /> </bindings> ... </site> 

Vedrai quindi i collegamenti nel gestore IIS. Spero che questo aiuti.

* MODIFICA * Le informazioni precedenti presumevano questo problema era correlato a IIS7. Se è per IIS6, è necessario seguire una procedura diversa. Informazioni in merito possono essere trovate qui .

Risposta

considerando il tuo ultimo commento e dopo aver esaminato le risposte degli esperti, posso consigliarti due soluzioni.

La soluzione migliore è:

Acquista un certificato SSL con caratteri jolly che ti consentirà di proteggere un numero illimitato di sub .domain.com che è ospitato sullo stesso IP (il certificato SSL richiede un IP dedicato).

Soluzioni alternative:

Puoi acquistare due diversi certificati SSL, uno per ogni sito web. non può ospitarli sullo stesso ip.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *