Let's Encrypt 인증서 생성

2024. 3. 1. 01:51보안

https://nginxstore.com/blog/nginx/lets-encrypt-%EC%9D%B8%EC%A6%9D%EC%84%9C%EB%A1%9C-nginx-ssl-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/

 

Let’s Encrypt 인증서로 NGINX SSL 설정하기

이 모범 사례에서는 Let’s Encrypt 클라이언트를 사용하여 인증서를 생성하는 방법과 이를 사용하도록 NGINX 오픈소스 및 NGINX Plus를 사용하여 nginx ssl 설정을 자동으로 구성하는 방법을 다룹니다.

nginxstore.com

# Let's Encript 클라이언트 설치
sudo apt-get install certbot -y
sudo apt-get install python3-certbot-nginx

# 설정 파일 수정
# default_server는 없어도 작동함
# 해당 도메인으로 인터넷에서 접속이 되어야 인증서를 만들 수 있음
# 도메인을 소유하고 있고, 적용하고자 하는 도메인이 DNS에 등록되어 nslookup에서 찾을 수 있어야 함
cd {nginx 설치위치}/sites-available
vi reverse-proxy.conf
----------------------------------
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name {도메인1} {도메인2};
}
----------------------------------

# 인증서 생성
# 3개월 유지됨
# 도메인은 더 추가 가능
sudo certbot -v --nginx -d {도메인1}-d {도메인2}

# 인증서 확인
sudo certbot certificates

브라우져에서 인증서 유효일자 확인

인증서 갱신

https://playon.tistory.com/47

 

Let's Encrypt 인증서 갱신하기

Let's Encrypt 인증서 갱신하기 인증서를 처음 설치 한 후 대략 3개월이 다가온 것 같다.잊고 있다가 이메일로 인증서 만료 메일이 와서 깜놀!!! (스팸함쪽으로 와서 스팸함도 잘 보세요;;) 그래!! 귀

playon.tistory.com

인증서 갱신은 1달전부터 가능하다고 함

Trouble Shooting

  • DNS problem: SERVFAIL looking up A for {도메인} - the domain's nameservers may be malfunctioning; DNS problem: SERVFAIL looking up {도메인 타입} for {도메인} - the domain's nameservers may be malfunctioning

 

인터넷에서 nslookup을 통해서 해당 도메인이 찾아지지 않는 경우 발생
외부 DNS 서버에 도메인이 등록되어 있어야 함

  • {도메인에 연결된 IP}: Fetching http://{도메인}/.well-known/acme-challenge/xxxxxx: Timeout during connect (likely firewall problem)

인터넷에서 http로 nginx 서비스가 접속이 안되는 경우: http://{도메인}
내부에서는 접속이 잘되는데, 외부에 80 port가 막혀 있어서 열어줌

  • {도메인에 연결된 IP}: Invalid response from http://{도메인}/.well-known/acme-challenge/xxxxx: 404

nginx를 http://{도메인}으로 접속했을 때, 404에러가 발생하는 경우

 

Failed Validation Limit - Let's Encrypt

Se på Dansk Voir en Français לעבור לעברית Ver em Português (do brasil) Переглянути українською 使用简体中文阅读本网页。 Description All issuance requests are subject to a Failed Validation limit of 5 failures

letsencrypt.org

등록하려고 하는 도메인으로에러가 많이 발생하는 경우, 이런 에러가 발생함
iptime의 DDNS를 등록하려고 할때, 이 에러가 발생해서 포기한 적 있음
해당 도메인의 sub 도메인으로 진행하면, 이 에러 안나고, 그 이후 해당 도메인을 추가해서 진행하면 해결됨

 

# 자동 갱신 적용
# 매일 12시 작업
sudo crontab -e
--------------------------
0 12 * * * certbot renew
--------------------------
  • [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)

해당 디렉토리에 nginx의 환경파일이 없어서 에러 발생함: 심볼릭 링크로 해결

sudo ln -s {실제 파일} /etc/nginx/nginx.conf
  • nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /etc/nginx/nginx.conf:46

ssl 모듈이 없어서 생긴 문제, ssl 모듈을 포함해서 새로 컴파일하면 해결됨

# 컴파일
./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/conf/ngnx.conf \
--pid-path=/etc/nginx/nginx.pid \
--lock-path=/var/run/nginx.lock \
--with-stream \
--with-http_stub_status_module \
--with-http_ssl_module

# 설치
sudo make install
  • nginx: [error] invalid PID number "" in "/etc/nginx/nginx.pid"

nginx.conf안에 pid 정보가 없어서 생긴 문제

# nginx.conf 위에 주석으로 되어 있는 부분을 활성화 및 정확한 위치 지정
pid        {pid 파일 위치}/nginx.pid;

'보안' 카테고리의 다른 글

Let's encrypt 인증서 갱신  (0) 2024.11.26
openssl 명령어  (0) 2023.05.27