certbot
은 letsencrypt
로 웹 사이트의 HTTPS 설정을 쉽게 도와주는 툴이다.
letsencrypt
는 보안 웹사이트를 위한 인증서를 발급해 주는 무료 인증기관이다.
certbot 공식 사이트 에 자세한 내용이 자세하게 나와있어 강추한다.
snapd
는 패키지 관리툴인데, certbot을 다운받을때, 다른 패키지 관리툴 예를 들어 apt
같은 것을 사용할 경우 제대로 설치가 안될 수 있으니 주의하자
sudo snap install core; sudo snap refresh core
apt
dnf
yum
등을 사용하여 certbot packages
를 다운받은 경험이 있다면 이것을 지워주자
//apt 사용시
sudo apt-get remove certbot
//dnf 사용시
sudo dnf remove certbot
//yum 사용시
sudo yum remove certbot
sudo snap install --classic certbot
이것은 두가지 방식이 있는데 나는 공식문서에 나와있는 첫번째 방식으로 하였다.
이 두가지 방식의 차이는 configuration
설정을 자동으로 작성해줄지, 수동으로 작성해줄지의 차이다. 나는 자동으로 모두 작성해주는 방식을 선택하였다.
sudo certbot -nginx
이 명령어를 실행하면 차례차례 필요한 정보를 입력할 것이다...
⚠️ 이 명령어가 제대로 돌아가지 않는다면 반드시 확인해보아야 할 것이 있다. 바로 configuration
파일이다.
/etc/nginx/sites-available
에 default
파일을 확인하자./etc/nginx/sites-available
안에 configuration
파일을 생성하거나,/etc/nginx
내에 있는 nginx.conf
파일을 여는 것이다.sites-enabled
에 symlink
를 생성해주는 작업이 필요하다.sites-available
에서 파일을 생성하고, 선택적으로 sites-enabled
폴더에 동기화하여 적용시켜주는 작업이다. 필요한 작업이니 꼭 해주자. ```bash
cd /etc/nginx/sites-available
sudo ln -s /etc/nginx/sites-available/{생성파일} /etc/nginx/sites-enabled/
```
configuration
파일에서 server
block안에 server-name
에 인증받을 사이트의 도메인 주소를 작성하자.```bash
server{
server-name myname.com;
}
```
서버 블록이 없으면 서버블록을 만들어서 작성하면되는데,
`nginx.conf` 안에다 작성하는 경우, `http` 블록안에 `server{}` 을 만들어 사용하자.
⚠️내가 이전에, ssl 설정을 했었다가 지운 상태에서 다시 시도를 할경우, ‘ssl어쩌구 pem 어쩌구하면서 찾을수 없다’ 이런 에러가 뜰것이다.
configuration
파일에 들어가서 certbot
때문에 생긴 코드들을 모두 지워준다. (server 블록안에 생긴 코드들을 지워주면 된다)