associa la porta ssl di apache con un'altra porta con la stessa porta 443 di openssl


8

Ho un server (base Linux) in cui ho installato dotcms e funziona sulla porta 80 e openssl è sulla porta 443. Entrambi sono avviati nel processo in esecuzione. Recentemente ho installato apache sul mio server. e quando ho avviato apache si è bloccato perché la porta ssl predefinita su apache è 443 e apache è 80, entrambi sono già in esecuzione. Solo per il mio compito ho avviato solo apache senza SSL sulla porta 90. ma voglio iniziare SSL con Apache e ovviamente su un'altra porta. È possibile associare apache ssl con lo stesso openssl?

Ho bisogno dei miei dotcms predefiniti nel processo in esecuzione, non posso fermarli in ogni caso, posso solo riavviare il mio servizio dotcms se è richiesto l'avvio di apache. ma ho bisogno di dotcms e apache per eseguire entrambi in parallelo.

vedi l'immagine su quel link (a causa della minore reputazione non ho potuto caricare l'immagine) http://developers89.byethost14.com/images/ssl.png


1
Fornire informazioni come testo piuttosto che immagini (leggibili, ricercabili, ecc.).
Karl Richter,

Risposte:


17

Sì, è possibile associare Apache a un'altra porta e continuare a utilizzare SSL.

Sostituisci le Listendirettive nella tua configurazione di Apache. La configurazione dovrebbe contenere line like

Listen 80
Listen 443

Apache ascolterà sulle porte definite con queste opzioni di configurazione. Sostituiscili e Apache ascolterà su una porta diversa.

Tuttavia, devi ancora dire ad Apache cosa servire sulle porte sopra. Supponiamo che tu voglia che Apache inizi ad ascoltare sulla porta 8080 (normale) e 4433 (ssl). Quindi è necessario sostituire le direttive Listen a

Listen 8080
Listen 4433

Successivamente, definire due VirtualHosts su queste porte in questo modo:

NameVirtualHost 0.0.0.0:8080
NameVirtualHost 0.0.0.0:4433

<VirtualHost 0.0.0.0:8080>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/plain
</VirtualHost>

<VirtualHost 0.0.0.0:4433>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/ssl

    SSLEngine On
    SSLCertificateFile /the/certificate/file
    SSLCertificateKeyFile /the/key/file
</VirtualHost>

Se non si dispone più di una definizione di VirtualHost, non è necessario includere la ServerAliasdirettiva (o il ServerName, per quella materia).

Se riavvii Apache, ascolterà su 8080 connessioni non crittografate e sulla porta 4433 per SSL. Assicurarsi di non avere alcuna vecchia definizione VirtualHost che contenga il numero di porta errato.


Grazie, la porta è attiva ma quando provo mydomain.com:4433 viene visualizzato l'errore "Errore di connessione SSL"Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have.
Waqas Ahmed

quando provo ad abilitare il modulo SSL da questo comando su Linux a2enmod ssl. dà errore: * Restarting web server apache2 ... waiting (98)Address already in use: make_sock: could not bind to address [::]:4433e quando disabilito quel modulo e riavvio la porta apache 4433 è in esecuzione e si trova di fronte errore evidenziato nel commento sopra
Waqas Ahmed

Arresta il server web apache e assicurati che nessuna istanza Apache rimanga in esecuzione. Controlla se le porte sono aperte con il comando "netstat -napt | grep 4433" (non dovrebbe esserci output). Quindi eseguire a2enmod per abilitare il modulo SSL. Inoltre, assicurarsi che le direttive "Ascolta" vengano visualizzate nei file di configurazione una sola volta (ad es. La seconda direttiva "Ascolta 4433" genererà un errore).
Lacek,

Con Apache 2.4.10 ottengoInvalid ServerName "*" use ServerAlias to set multiple server names.
Ortomala Lokni il

Ho aggiornato la risposta, quindi la configurazione funzionerà anche con Apache 2.4. Grazie per averlo segnalato.
Lacek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.