Posts Apache에서 TLSv1, TLSv1.1 접근 막기
Post
Cancel

Apache에서 TLSv1, TLSv1.1 접근 막기

설명

  • Apache Webserver에서 보안성이 낮은 프로토콜인
    TLSv1, TLSv1.1을 허용하지 않게 설정한다.

설정파일 수정

  • 가정
    • conf.d/my.conf에서 SSL 설정을 한다고 가정한다.
    • conf/http.conf에서 conf.d/my.conf를
      include 하고 있다고 가정한다.
  • conf/http.conf
    1
    2
    
    ...  
    IncludeOptional conf.d/my.conf  
    
  • conf.d/my.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Listen 443 https  
    <VirtualHost *:443>  
    	ServerName my.website.com  
                
    	SSLEngine on  
    	SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1  
            SSLCertificateFile "my.crt"  
            SSLCertificateKeyFile "my.key"  
            SSLCACertificateFile "my.bundle_crt"  
    	....  
    </VirtualHost>  
    
  • SSLProtocol
    • 모든 프로토콜 허용
      1
      
      SSLProtocol all  
      
    • SSLv3, TLSv1, TLSv1.1 빼고 나머지 허용
      1
      
      SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1  
      
  • 주의사항

확인

  • openssl을 이용하여 특정 프로토콜로 요청을 보내
    응답을 보고 확인한다.
  • 명령
    1
    2
    3
    4
    5
    
    # TLSv1으로 연결 시도  
    openssl s_client -connect my.website.com:443 -tls1  
                
    # TLSv1.1으로 연결 시도  
    openssl s_client -connect my.website.com:443 -tls1_1  
    
  • 결과
    • TLSv1과 TLSv1.1로 연결 시도 시 연결이 실패해야 성공이다.
    • 연결 실패 시 최초 에러가 출력되며,
      ‘Secure Renegotiation IS NOT supported’ 가 떠야한다.
This post is licensed under CC BY 4.0 by the author.