2012-05-26 3 views
1

http://secure.domain.com:444https://secure.domain.com:444으로 어떻게 리디렉션 할 수 있습니까? 사전에apache에서 사용자 정의 포트의 https 프로토콜로 리디렉션하는 방법은 무엇입니까?

RewriteEngine 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

감사 :이 코드를 사용할 때

나는 400 (잘못된 요청) 오류가 발생합니다.

편집 :

여기에 전체 설정은 다음과 같습니다

Listen 444 
    NameVirtualHost ip:444 

    <VirtualHost ip:444> 
      ServerName secure.domain 
      DocumentRoot "/var/www/.phpmyadmin/3.5.1/" 

      RewriteEngine On 
      RewriteCond %{HTTPS} !=on 
      RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

      SSLEngine on 
      SSLProtocol all -SSLv2 
      SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM 

      SSLCertificateFile /etc/httpd/conf/domain.crt 
      SSLCertificateKeyFile /etc/httpd/conf/domain.pwdless.key 
      SSLCertificateChainFile /etc/httpd/conf/sub.class1.server.ca.pem 
      SSLCACertificateFile /etc/httpd/conf/ca.pem 

      <Directory "/var/www/.phpmyadmin/3.5.1/"> 
        Options None 
        AllowOverride None 
        Order allow,deny 
        Allow from all 
        AuthType Basic 
        AuthName "Restriected Access" 
        AuthUserFile "/var/www/.phpmyadmin/.access" 
        Require valid-user 
      </Directory> 
    </VirtualHost> 

    <VirtualHost ip:444> 
      ServerName domain 
      ServerAlias *.domain 
      RedirectMatch 404 ".*" 
    </VirtualHost> 
+0

별도의 포트 번호를 사용하지 않으면 포트에 연결되었을 때 Apache가 SSL 협상을 수행할지 여부를 어떻게 알 수 있습니까? –

+0

사실 나는 그렇지. 444 포트에 SSL 엔진이 사용 가능합니다. 하지만 http : //를 쓰면 https : //로 리디렉션됩니다. –

답변

0

그것은 불가능합니다. 서버는 해당 포트에서 SSL 요청 만 수락하도록 설정됩니다. 요청하신 내용을 지원하는 RFC가 있지만 (RFC 2817) 일반적인 브라우저에서는 지원하지 않습니다. Chrome bug tracker에 티켓에서 일부 링크가 있습니다.

+0

이것은 http://isil.monsternett.no:8443/에서 https://isil.monsternett.no:8443/로 리다이렉트합니다. –

+0

네가 옳다. 물론 가능하지만 서버가 비 SSL 요청이 들어오고 있음을 감지해야합니다. Apache/mod_ssl에서는 가능하지 않습니다. 또한 잠재적 인 보안 문제가있는 것처럼 보이지만 포트 80을 열어 놓는 것보다 더 나쁠 수도 있습니다. –

관련 문제