동일한 openssl 포트 443을 사용하여 다른 포트로 아파치 SSL 포트 바인딩


8

나는 dotcms를 설치 한 서버 (리눅스베이스)를 가지고 있으며 포트 80에서 실행되고 openssl은 포트 443에 있습니다. 둘 다 실행중인 프로세스에서 시작됩니다. 최근에 서버에 아파치를 설치했습니다. 아파치를 시작했을 때 아파치의 기본 ssl 포트가 443이고 아파치가 80이므로 둘 다 이미 실행 중이기 때문에 중단되었습니다. 내 작업을 위해 포트 90에서 SSL없이 아파치를 시작했습니다.하지만 분명히 다른 포트에서 아파치로 SSL을 시작하고 싶습니다. 아파치 SSL을 동일한 openssl과 바인딩 할 수 있습니까?

실행중인 프로세스에서 기본 dotcms가 필요합니다. 어쨌든 그것을 막을 수는 없습니다. 아파치 시작이 필요한 경우에만 dotcms 서비스를 다시 시작할 수 있습니다. 하지만 두 병렬을 모두 실행하려면 dotcms와 Apache가 필요합니다.

그 링크의 이미지를 참조하십시오 (명망이 적기 때문에 이미지를 업로드 할 수 없었습니다) http://developers89.byethost14.com/images/ssl.png


1
이미지가 아닌 텍스트로 정보를 제공하십시오 (읽기, 검색 가능 등).
Karl Richter

답변:


17

예, Apache를 다른 포트에 바인딩하고 여전히 SSL을 사용할 수 있습니다.

Listen아파치 구성에서 지시문을 교체하십시오 . 설정은 다음과 같은 줄을 포함해야합니다

Listen 80
Listen 443

Apache는 이러한 구성 옵션으로 정의 된 포트에서 청취합니다. 그것들을 교체하면 Apache는 다른 포트에서 청취합니다.

그러나 여전히 위의 포트에서 서비스 할 대상을 Apache에 알려야합니다. Apache가 포트 8080 (일반) 및 4433 (ssl)에서 청취를 시작한다고 가정하십시오. 그런 다음 Listen 지시문을

Listen 8080
Listen 4433

그런 다음이 포트에서 다음과 같이 두 개의 VirtualHost를 정의하십시오.

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>

더 이상 VirtualHost 정의가 없으면 ServerAlias지시문 (또는 ServerName해당 사항에 대한) 을 포함하지 않아도됩니다 .

Apache를 다시 시작하면 암호화되지 않은 연결은 8080, SSL은 포트 4433에서 수신 대기합니다. 잘못된 포트 번호를 포함하는 이전 VirtualHost 정의가 없어야합니다.


감사합니다, 포트는 켜져 있지만 mydomain.com:4433 을 시도 하면 "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

리눅스 a2enmod ssl 에서이 명령으로 ssl 모듈을 활성화하려고 할 때. 오류가 발생합니다 : * Restarting web server apache2 ... waiting (98)Address already in use: make_sock: could not bind to address [::]:4433모듈을 비활성화하고 다시 시작하면 아파치 4433 포트가 실행 중이며 위의 주석에서 강조 표시된 오류가 발생합니다.
Waqas Ahmed

Apache 웹 서버를 중지하고 실행중인 Apache 인스턴스가 없는지 확인하십시오. "netstat -napt | grep 4433"명령으로 포트가 열려 있는지 확인하십시오 (출력이 없어야 함). 그런 다음 a2enmod를 실행하여 SSL 모듈을 활성화하십시오. 또한 "Listen"지시문이 구성 파일에 한 번만 나타나는지 확인하십시오 (예 : 두 번째 "Listen 4433"지시문에 오류가 발생 함).
Lacek

아파치 2.4.10와 나는 얻기Invalid ServerName "*" use ServerAlias to set multiple server names.
Ortomala Lokni

답변을 업데이트 했으므로 구성이 Apache 2.4에서도 작동합니다. 이것을 지적 해 주셔서 감사합니다.
Lacek 2012
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.