서버 이전 경력이 좀 됐는데도 불구하고 할 때마다 헷갈리고 특히, 마지막 관문 SSL 인증서 발급에서 꼬일 때가 많아 진을 뺄 때가 많다.
SSL 인증서를 성급하게 발급 받으면 DNS가 꼬여 서버 이전 시간이 더 소요되므로 DNS 전파 완료 시점을 확실하게 파악하여 발급 받도록 하자.
SSL 인증서 개념
SSL(Secure Sockets Layer)은 웹사이트와 사용자(브라우저) 간에 주고받는 데이터를 암호화하여 보호하는 인터넷 보안 기술이다.
핵심 기능: 개인정보나 결제 정보 같은 민감한 데이터가 해커에게 탈취되거나 변조되지 않도록 안전하게 전송하는 역할을 한다.
작동 원리: 암호화된 통신을 수행하며, 이 기술이 적용된 웹사이트 주소는 http:// 대신 https://로 시작합니다.
SSL 인증서: 사이트의 신뢰성을 보증하는 디지털 증명서로, 브라우저 주소 창에 ‘자물쇠’ 아이콘으로 표시되는 게 바로 SSL 인증서이다.
SSL 인증서 발급 시점 중요
DNS 관리에서 A레코드를 이전할 서버로 변경하고 나면 DNS 전파는 국내 통신사 기준으로 보통 5분~10분 내외로 생각보다 빨리 바뀔 때도 있고 30분에서 한 시간이 훌쩍 넘어갈 때도 있다.
DNS 전파 시간이 길어지면 대개 dns 전파 확인 사이트에서 수시로 조회해 본다. dns 전파 확인 사이트에서 전 세계의 주요 네임서버에 변경된 IP나 레코드가 제대로 업데이트 되었는지 조회하기 위해서이다.
하지만, dns 전파 확인 사이트에서 이전할 서버로 A레코드가 변경되었다고 하더라도 꼭 도메인이 지금 어떤 IP를 가리키고 있는지 서버에서 직접 조회해보는 것이 가장 정확하고 에러가 없다.
이번 서버 이전에서도 dns 전파 확인 사이트에서 바뀐 걸 보고 SSL 인증서를 발급 받았다가 꼬이는 바람에 서너 시간이나 애를 먹었다.
DNS 전파 완료 시점 방법
nslookup 사용하기
nslookup는 도메인이 현재 서버가 어떤 IP를 가리키고 있는지 직접 조회하는 명령어이다. 자신의 도메인 이름을 넣고 아래와 같이 명령하면 된다.
Bash
nslookup newbinsight.com
출력 결과 중 Address: 부분에 이전할 서버의 IP가 뜨면 전파가 완료된 것이다. 이 명령에서 서버 아이피가 표시되면 바로 인증서를 발급 받으면 된다.
curl로 IP 확인하기
curl은 특정 프로토콜을 이용하여 데이터를 전송하는 리눅스 프로그램이다. curl 명령어 뒤에 http주소를 입력하면 GET요청을 하여 결과 값을 알려준다.
Bash
curl -v http://newbinsight.com
* Trying xxx.xxx.xxx :80... 과 같이 이전할 서버의 IP가 나타나면 연결이 그리로 가고 있는 것이다. 이 명령어는 참고로만 확인하면 된다.
SSL 인증서 발급 방법
Bash
sudo certbot --nginx -d newbinsight.com -d www.newbinsight.com
- 위 명령어를 입력하고 엔터를 치면 글이 주르륵 올라가면서 이메일 주소 등을 물어본다. 이메일은 입력하면 되고 공유는 N를 선택한다.
- 인증서 갱신/대체 물어보면:
2: Renew and replace the certificate선택하고, HTTP를 HTTPS로 리다이렉트할지 물어보면:2: Redirect선택하면 된다.
Nginx 검사 및 반영
- 서버 엔진이 Nginx이라면,
sudo nginx -t
2. syntax is ok, test is successful이 뜨는지 확인하고, 오류가 없다면 서버를 리로드 한다.
sudo systemctl reload nginx
3. 그리고 서버 내부에서 인증서 에러가 없는지도 검사한다.
curl -I https://newbinsight.com
curl: (60) SSL... 등과 같은 에러가 안 나고 아래와 가팅 200이 뜨면 성공이다.
HTTP/2 200
server: nginx/1.24.0 (Ubuntu)
date: Tue, 26 May 2026 13:09:56 GMT
브라우저에서 확인할 때는 반드시 ‘크롬 시크릿 창’을 열어서 확인해야 한다. 캐시가 남아있어 옛날 서버의 화면이 보일 때가 많다.
댓글