Apache는 SSLv2 SSLv3을 비활성화합니다.

Apache는 SSLv2 SSLv3을 비활성화합니다.

이 주제와 관련된 몇 가지 질문이 있다는 것을 알고 있습니다. 하지만 내가 무엇을 더 할 수 있는지 정말 모르겠습니다.

요점은 다음과 같습니다.

  • OpenSuse 12.3에서 Apache 2.2.22를 사용하고 있습니다.
  • SSLProtocol 옵션은 내 ssl.conf에 있습니다.
  • 나는 다음 옵션을 모두 시도했습니다.

    SSLProtocol ALL -SSLv2 -SSLv3 
    ----------
    SSLProtocol +TLSv1 -SSLv2 -SSLv3
    ----------
    SSLProtocol TLSv1
    ----------
    SSLProtocol -ALL TLSv1
    ----------
    

하지만 무엇을 시도하든 모든 프로토콜을 여전히 사용할 수 있습니다.

왜 비활성화할 수 없나요?

편집: 그래서 많은 노력을 했기 때문에 요약하고 싶습니다.
SSLProtocol 선언은 하나만 있고 어디에 두는지는 중요하지 않습니다(vhost conf 또는 ssl-default conf).
모든 프로토콜을 거부하기 위해 "-all" 옵션을 사용하면 제대로 작동하기 때문에 로드된 것으로 알고 있습니다. 특수 프로토콜을 거부해도 효과가 없습니다(예: -SSLv3 옵션). 프로토콜이 허용되면 모든 프로토콜을 사용할 수 있습니다(예: "SSLProtocol TLSv1 -SSLv2 -SSLv3" 또는 "SSLProtocol -all TLSv1"을 사용하면 모든 프로토콜을 사용할 수 있습니다!).
어떤 생각?

답변1

방금 POODLE 익스플로잇을 사용하여 이 문제를 직접 해결했습니다.

OpenSuSE의 경우에만 다음을/etc/apache2/ssl-global.conf

<IfDefine SSL>
<IfDefine !NOSSL>
<IfModule mod_ssl.c>
  #Your other stuff
  SSLProtocol All -SSLv2 -SSLv3
</IfModule>
</IfDefine>
</IfDefine>

다음 명령을 사용하여 Apache를 저장하고 종료하고 다시 시작하십시오.rcapache2 restart

아직 궁금한 점이 있으면 알려주시기 바랍니다.

답변2

로드 SSLProtocol ...후의 모습입니다.SSL 사이트.

다음을 통해 이러한 경우인지 확인할 수 있습니다.

strace httpd -t 2>&1 | egrep 'open\("\/etc\/(apache(2|)|httpd)\/.*\.conf'

opensuse가 apache2를 어떻게 구현하는지 잘 모르겠습니다 . apache2 -t대신 사용할 수도 있습니다 httpd -t.

만약 당신의SSL 프로토콜너보다 낮아현장 회의또는 귀하의 구성을 포함하십시오사이트 정의, 이 구성은 귀하의 제품에는 적용되지 않습니다.현장 회의.

그런 다음 두 가지 옵션이 있습니다.

  1. 확실하게 하다SSL 프로토콜당신보다 먼저 로드하세요현장 회의.
  2. SSLProtocol ...당신의 구현현장 회의/사이트 정의.

답변3

이 시도

SSLProtocol -ALL +TLSv1

바꾸다

SSLProtocol ALL -SSLv2 -SSLv3 
----------
SSLProtocol +TLSv1 -SSLv2 -SSLv3
----------
SSLProtocol TLSv1
----------
SSLProtocol -ALL TLSv1

관련 정보