동일한 openssl 포트 443을 사용하여 다른 포트로 아파치 SSL 포트 바인딩 openssl은 포트 443에 있습니다. 둘

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

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

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



답변

예, 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 정의가 없어야합니다.