SSL?
SSL(Secure Sockets Layer)은 인터넷상에서 데이터를 암호화하여 전송하는 보안 프로토콜이다. 웹 사이트와 사용자 간의 정보를 안전하게 보호하기 위해 사용되며 웹 서버와 웹 브라우저 사이에 암호화된 연결을 제공한다.
Let's Encrypt
Let's Encrypt는 무료 SSL/TLS 인증서를 발급하는 인증 기관(Certificate Authority, CA)이다. 인터넷상에서 데이터를 안전하게 전송하기 위해 사용되는 SSL/TLS 인증서를 무료로 제공하며 웹 사이트의 보안을 쉽게 향상할 수 있게 도와준다.
Certbot 설치
sudo apt-get update
sudo apt-get install certbot
Certbot 버전 확인
sudo certbot --version
# sudo certbot --version
certbot 0.40.0
SSL 인증
sudo certbot --standalone -d example.com -d www.example.com certonly
certbot --standalone -d 옵션은 웹 서버가 없거나 혹은 Certbot이 웹 서버를 직접 관리하지 않는 경우 사용한다. 이 옵션을 사용하면 Certbot이 임시 웹 서버를 생성하여 도메인 인증을 진행한다. 이렇게 하면 도메인 소유자임을 증명할 수 있고 인증서를 발급받을 수 있다. 예를 들어, 이미 구동 중인 웹 서버가 없거나, Nginx 또는 Apache 외의 웹 서버를 사용하는 경우에는 --standalone 옵션을 사용할 수 있습니다. 여기서 "example.com"을 실제 도메인으로 변경해야 한다.
인증서 발급이 완료된다면 다음 경로에 저장되게 된다.
/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem
Nginx conf설정
Nginx 설정 파일을 열어 SSL 관련 설정을 추가하거나 수정해야 한다. 설정 파일은 일반적으로 /etc/nginx/sites-available/ 또는 /etc/nginx/conf.d/ 디렉터리에 위치한다. 예시는 다음과 같다.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 나머지 설정은 웹 사이트에 맞게 추가
}
Nginx설정이 올바르게 되었는 지 확인 후에 restart 한다.
sudo nginx -t
sudo systemctl restart nginx
'Develop > Linux' 카테고리의 다른 글
[Linux] E: The repository 'file:/cdrom focal Release' no longer has a Release file. 오류 해결 방법 (0) | 2023.06.02 |
---|---|
[Linux] Ubuntu에 ufw(Uncomplicated Firewall)을 사용하여 방화벽 설정하기 (0) | 2023.04.18 |
[Linux] 우분투에 MySQL 설치하기 (0) | 2023.03.17 |
[Linux] ping 명령어로 네트워크 상태 확인하기 (0) | 2023.03.02 |
[Linux] kill 명령어로 실행중인 프로세스 종료하기 (2) | 2023.02.06 |