sudo su
1. cerbot 설치
sudo apt-get update
sudo apt-get install certbot
sudo apt-get install python3-certbot-nginx
그리고 nginx를 잠시 멈춘다.
sudo systemctl stop nginx
2. 인증서 발급
sudo certbot certonly --manual -d "*.도메인" -d "도메인"
여기서 Enter 키를 누르기 전에 도메인을 구매한 사이트에서 레코드를 추가한다.
호스트 이름에는 _acme-challenge 를 적고 값에는 follwing value를 넣어준다. 설정이 완료되었으면 Enter키를 누른다.
기존 창과 다른 창으로 우분투에 접속 후 디폴트 파일에 들어간다.
vim /etc/nginx/sites-available/default
그리고 안에 location ~ /\.well-known/acme-challenge/ { ... } 부분을 추가한다.
설정이 끝났다면 nginx를 재가동한다.
sudo systemctl restart nginx
mkdir letsencrypt
cd letsencrypt
mkdir .well-known/
cd .well-known/
mkdir acme-challenge
cd acme-challenge
acme-challenge 폴더에서 모자이크 처리한 부분(위)을 이름으로 하는 파일을 생성 후 파일 내용에 url 뒤 쪽 모자이크 처리한 부분 (아래)을 내용으로 넣는다.
url으로 접속하여 잘 나오는지 확인 후 원래 쉘로 돌아가 Enter를 누른다.
인증서는 /etc/letsencrypt/live/'도메인'에 생성된다.
3. nginx 설정
디폴트 파일에 들어간다.
vim /etc/nginx/sites-available/default
아래에 새로운 서버 블록을 만들어준다.
server {
listen [::]:443 ssl;
listen 443 ssl;
server_name www.[domain] [domain];
ssl_certificate /etc/letsencrypt/live/'도메인'/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/'도메인'/privkey.pem;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location ~ /\.well-known/acme-challenge/ {
default_type "text/plain";
root /var/www/letsencrypt;
}
}
포트 번호는 본인이 설정해둔 포트 번호로 설정하면 된다.
nginx 재시작 하면 https로 접속이 되는 것을 확인 할 수 있다.
sudo systemctl restart nginx
'AWS' 카테고리의 다른 글
[AWS] The bucket does not allow ACLs (Service: Amazon S3; Status Code: 400; Error Code: AccessControlListNotSupported;) 해결 (0) | 2025.04.07 |
---|---|
[Ubuntu] AWS Ec2 서버 배포하기 (0) | 2023.05.10 |
[Ubuntu] 리눅스 환경 구축 (Mac 기준), 도메인 연결 (0) | 2023.05.09 |