TLS(Transport Layer Security)란?
개발자라면 OSI 7 계층을 알고 있을 것이다. 7개의 레이어 중 전송 계층(Transport Layer)에서 사용되는 보안 프로토콜이다. 이 프로토콜은 서버 간 통신에서 데이터를 암호화하고 인증하는 역할을 한다. 전송계층의 Security guide와 같은 존재이다.
아파치 설정파일 TLS 버전 변경하는 방법
최근에 Nginx와 Apache 사용하는 웹서버의 TLS 버전 변경 방법을 찾아보면서 Nginx configuration과 Apache configuration 파일을 뜯어보고 있었다.
기존에는 TLS1.0, TLS 1.1 버전을 지원하고 있는데 취약점을 보유한 두 버전을 지원하지 않도록 변경할 것이다.
이렇게 되면 TLS1.0, TLS 1.1 버전만을 지원하는 다른 서버에서 더이상 해당 서버로 통신이 불가하다.
우선 버전 변경 방법은 다음과 같다.
아래는 현재 Nginx 설정파일이다.
server {
listen ...
server_name ...
...
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
...
}
ssl_protocols
속성에서 TLSv1 TLSv1.1
를 제거해준다.
다음은 아파치 설정파일을 수정하기 위해 내용을 살펴보면 SSLProtocol
이라는 설정변수가 있을 것이다.
SSLProtocol all -SSLv3
반면 아래는 모든 프로토콜을 허용하는데(all
) 그중에서 SSLv3
만 제외하겠다는 의미이다.
이 곳에 TLS1, TLS1.1 도 제외하도록 구문을 추가하면 된다.
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
아파치(Apache) 설정파일 속 SSLProtocol 의 SSLv3 가 대체 뭘까?
TLS
도 아니고 SSLv3
는 뭐지?
원래 태초엔 SSLv2
와 SSLv3
버전이 존재했는데, SSLv3
나온 뒤 프로토콜 이름이 SSL
에서 TLS
로 바뀐 것 뿐이다.
SSL (Secure Sockets Layer) -> TLS (Transport Layer Security)
이름 바뀌고 처음 나온 버전은 TLS1.0.
참고로 TLS버전 관련해 파고들다보면 OpenSSL이라는 것이 보인다.
OpenSSL은 TLS프로토콜 사용에 필요한 라이브러리 묶음이다. 공식사이트에는 아래와 같이 설명되고 있다.
이상 TLS 지원 버전을 변경하는 방법과 SSL과 TLS의 차이점에 대해 알아보았다.
참고:
'studies > Back-end' 카테고리의 다른 글
[Kotlin] IntelliJ kotlinx.coroutines 모듈 Import 안됨 해결 (0) | 2023.12.10 |
---|---|
[Kotlin] 문자열 바이트 수 구하기 / 바이트 크기 (0) | 2023.11.05 |
[MySQL] JSON 타입 사용해서 JSON Array 다루기 (0) | 2023.09.16 |
mac terminal vim / how to change readonly file (0) | 2022.01.26 |
[Kotlin] 코틀린 스코프 함수 정리 (0) | 2022.01.19 |