-
반응형
Let’s encrypt 를 이용해서nginx 웹 서버에 HTTPS를 적용하는 방법입니다. 도메인을 등록하는 방식으로 진행되기 때문에 *도메인이 필수적으로 필요합니다. ubuntu 16.04, nginx version: nginx/1.10.3 (Ubuntu)에서 진행 하였습니다.
인증서 Let’s encrypt 역시 CA(Certificate Authority)입니다. certbot을 통해서 간편하고 무료로 등록 할수 있어서 많이 이용합니다. certbot-auto로 진행 하겠습니다. 먼저 공식문서에 나온대로 설치를 진행합니다.
공식문서: certbot.eff.org/docs/install.html#certbot-auto
wget https://dl.eff.org/certbot-autosudo mv certbot-auto /usr/local/bin/certbot-autosudo chown root /usr/local/bin/certbot-autosudo chmod 0755 /usr/local/bin/certbot-auto그 다음 디렉토리를 하나 생성합니다.
# 디렉토리 생성$ sudo mkdir -p /var/www/letsencrypt# proxy.conf vim이나 vi으로 실행$ sudo vim /etc/nginx/sites-available/defaultdefault 파일을 수정합니다.
server {listen 80;server_name *자신의 도메인*;...location ~ /\.well-known/acme-challenge/ {allow all;root /var/www/letsencrypt;}...}nginx 를 다시 실행시킨 후 인증서 발급을 시작합시다. default에 적어뒀던 도메인을 적어야 합니다.
$ service nginx restart$ certbot-auto certonly --webroot -w /var/www/letsencrypt -d 도메인 --agree-tos -m 본인의 이메일ex) certbot-auto certonly --webroot -w /var/www/letsencrypt -d naver.com --agree-tos -m a@a.com인증서 발급에 성공 했다면 /etc/letsencrypt/live/{도메인명}에 4가지 파일이 존재합니다.
$ sudo ls /etc/letsencrypt/live/{도메인명}
- cert.pem: 도메인 인증서
- chain.pem: Let’s Encrypt chain 인증서
- fullchain.pem: cert.pem + chain.pem
- privkey.pem: 인증서의 개인키
/etc/nginx/sites-available/default 파일을 다시 수정해야합니다. http로 접근하면 https로 리다이렉트해주고 발급받은 인증서를 적용해야합니다. 아래처럼 server를 추가해주세요.
server {listen 80;server_name *도메인*;location ~ /\.well-known/acme-challenge/ {allow all;root /var/www/letsencrypt;}location / {# http 로 들어올 경우 https 로 리다이렉트 한다.return 301 https://$server_name$request_uri;}}server {# http2 를 활성화 시키기 위해 http2 추가listen 443 ssl http2;server_name *도메인*;root /html;index index.html index.htm;ssl_certificate /etc/letsencrypt/live/{도메인명}/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/{도메인명}/privkey.pem;location / {try_files $uri $uri/ 404;}}다시 nginx를 재시작합니다
$ service nginx restart
이제 접속해서 확인해보세요!
적용 성공! 반응형'코딩' 카테고리의 다른 글
실행 컨텍스트 with 호이스팅, 스코프체인 - 1 (0) 2021.09.14 자바스크립트 기본 데이터 타입 (0) 2021.09.12 ssh를 이용하여 로컬에서 원격서버로 파일 전송하기 (0) 2020.11.17 React-native로 만든 앱에 광고 넣기(Android) with react-native-admob (0) 2020.11.15 REACT-NATIVE 버튼 둥글게 만들기 (0) 2020.11.11