nginx에서 http3와 IPv6와 ech와 양자 저항 암호화를 사용하는 방법

http3와 IPv6는 지원합니다, ech는 곧 도입될 것이지만 양자 저항 암호화는 요원해 보입니다.

2023-11-19 배포


Nginx logo

모던 웹에서 성능과 보안을 위해선 이 3가지는 필수요소지요.

nginx란?

웹 서버 겸 리버스 프록시 겸 로드 밸런서 역할도 수행할 수 있는 만능 도구입니다.

http/3(quic)를 지원하는 방법

옵션을 넣어서 컴파일해야 합니다만 편하게 패키지 저장소로 관리하고 싶다면 아래 명령어들을 사용하여 커스텀 버전 nginx를 사용하면 됩니다.

sudo add-apt-repository ppa:ondrej/nginx-mainline
sudo apt update
sudo apt install nginx

그리고 nginx 설정에 들어갑니다.

server {
 listen 443 default ssl;
 listen [::]:443 default ssl;

 http2 on;

 listen [::]:443 quic; <- IPv6에서의 quic
 listen 443 quic; <- IPv4에서의 quic

 server_name _;

 ssl_certificate /etc/nginx/ssl/nginx.crt;
 ssl_certificate_key /etc/nginx/ssl/nginx.key;

 return 403;
}

이렇게 443 포트의 SSL에 quic도 하나 적어주면 됩니다.

이제 레이턴시가 더 줄어들겠죠?

UDP를 차단해 둔 일부 학교/기관에서는 사용하지 못하겠지만요.

ech 지원 방법

아직은 안되고, openssl에서 지원해 줘야 한다고 합니다.

2023년 10월 이후 크롬과 파이어폭스 모두 ech가 정식 지원되기 시작했습니다.

openssl은 정식 지원을 위한 준비를 거의 마친 모양입니다.

기여자 중 한 명인 sftcd는 올해 말에 pr를 넣겠다고 합니다(정확히는 RFC 표준이 발행될 때).

그러면 그게 정식 버전에 들어오고 nginx에도 업데이트해야 하니 시간은 조금 걸릴 것 같습니다.

양자 저항 암호화 지원 방법

24년쯤에 표준이 잡힌다고 하네요, 아마 kyber가 표준이 되지 않을까 싶습니다.

그러면 그 후에는 빠른 교체가 이루어지겠죠, 양자 컴퓨터 발전이 너무 빨라서 말입니다.