사이트 등급 확인
https://www.ssllabs.com/ssltest/analyze.html 에 들어가서 등급 확인할 사이트의 주소로 확인해보자.
각 항목에 대해 어떤 기준으로 점수를 매기는지는 https://github.com/ssllabs/research/wiki/SSL-Server-Rating-Guide 에서 확인 가능하다.
내 사이트의 경우 F 등급이 나왔다.ㅠㅠ
SSL 설정파일 수정하기
vi apps/apache/conf/extra/httpd-ssl.conf
(AS-IS)
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite SSLv3:+HIGH:+MEDIUM
(TO-BE)
SSLProtocol TLSv1.2 TLSv1.1 TLSv1
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305 : ECDHE-RSA-CHACHA20-POLY1305 : ECDHE-ECDSA-AES128-GCM-SHA256 : ECDHE-RSA-AES128-GCM-SHA256 : ECDHE-ECDSA-AES256-GCM-SHA384 : ECDHE- -AES256-GCM-SHA384 : DHE-RSA-AES128-GCM-SHA256 : DHE-RSA-AES256-GCM-SHA384 : ECDHE-ECDSA-AES128-SHA256 : ECDHE-RSA-AES128-SHA256 : ECDHE-ECDSA-AES128-SHA ECDHE-RSA-AES256-SHA : ECDHE-RSA-AES256-SHA384 : ECDHE-RSA-AES256-SHA384 : ECDHE-ECDSA-AES256-SHA : ECDHE-RSA-AES256-SHA : DHE-RSA-AES128-SHA256 : DHE DHA-RSA-AES256-SHA : DHE-RSA-AES256-SHA : ECDHE-ECDSA-DES-CBC3-SHA : ECDHE-RSA-DES-CBC3-SHA : EDH-RSA-DES-CBC3 -SHA : AES128-GCM-SHA256 : AES256-GCM-SHA384 : AES128-SHA256 : AES256-SHA256 : AES128-SHA : AES256-SHA : DES-CBC3-SHA :! DSS
SSLHonorCipherOrder on
문제 발생
SSLProtocol TLSv1.2 TLSv1.1 TLSv1 SSLv3
TLSv1.2 처럼 Dot이 있는 버전으로 등록이 불가한 현상 발생 (https로 접근이 불가)
원인은 오래된 아파치 버전에서 지원하지 않음 또는 openssl의 버전에서 지원하지 않기 때문으로 보임. (openssl 1.0.1j 버전부터 TLSv1.1, TLSv1.2를 안정적으로 사용할 수 있다고 한다)
그래서 일단 SSLProtocol은 기존 값으로 유지
SSLProtocol -all +TLSv1 +SSLv3
POODLE attack 없애기
SSLv3을 없앰
SSLProtocol -all +SSLv2
poodle 관련된 문구는 사라졌다.
이제 남은 것은, open ssl의 취약점 문제.
open ssl의 버전은
openSSL 1.0.1e
구글링에 의하면 1.0.1 버전 중에서는 1.0.1t 이상이어야 취약점이 해결된다고 한다.
yum 명령어로 받을 수 있는 최종 버전은 1.0.1e이기 때문에,
1.0.1u 를 수동 install
/usr/local/ssl/bin/openssl
위 경로에 새로운 바이너리 파일로 교체함
아파치를 재시작 해보았더니
이 문구는 사라졌지만 여전히 F는 남아있었다..
Apache와 OpenSSL의 구조
삽질한 방법
mod_ssl.so가 가리키는 lib 파일만 높은 버전으로 변경하면 되지 않을까? |
---|
- openssl의 새버전을 받아서 분리된 영역에 빌드하고 lib 파일 2개만 새 버전의 것을 참조하도록 변경
- 결과 ===> 서버는 잘 동작했다. But, https://www.ssllabs.com 에서
- 인증서는 잘 가져오지만,
- 등급을 측정하지 못하고 뭔가 에러가 뜸
- 결국 원복
새로 시도해본 구조
Apache 2.2.21과 openssl 1.0.1e을 연동하여 생성된 mod_ssl.so로는 실패했다. |
---|
step1
- 기존 아파치는 예전 openssl과 연동하도록 복구
- 같은 버전의 다른 apache와 높은 버전의 openssl과 연동함
step2
- 기존 아파치가 참조하던 mod_ssl.so를 새로운 mod_ssl.so로 교체
- 기존 openssl을 사용하던 sshd는 예전 openssl을 그대로 사용하기 때문에 영향이 없다.
- 처음에 서버가 동작을 안했었는데, mod_ssl.so가 가리키는 곳이 설정되어 있지 않아서였고,
심볼릭링크로 새 버전의 lib 파일들을 바라보도록 설정함 - 만약 실패하는 최악의 상황의 경우 Apache를 교체를 하는 수 밖에 없음
결과
B등급 정도면 무난하므로 여기서 끝.
'개발 > ETC' 카테고리의 다른 글
[sourcetree] 소스트리 클론 시 창 무한으로 뜨는 현상(SSH key) (0) | 2022.09.02 |
---|---|
[깃허브] SourceTree 사용 시 git의 주소가 인식되지 않을 때(push, pull, clone 안될 때) (4) | 2022.07.11 |
Apache SSL 인증서 등록하기 (0) | 2018.01.19 |
[java] selenium으로 Chrome headless 사용해보기 (0) | 2018.01.19 |
자주 쓰는 이클립스 단축키 vs 인텔리제이 단축키 (3) | 2017.06.16 |