• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

Ubuntu20 Let's Encrypt SSL인증서 발급받기

달소 달소 683

2

2

 

앞서 도메인을 발급받은뒤에 진행되어야할게 도메인에 대한 SSL 인증서를 발급받아 보안을 강화해주는것입니다.

 

요즘 구글 검색 혹은 기타 환경에서 https를 사용하지않는 부분은 없기때문에 거의 필수적이라고 보시면됩니다.

 

certbot으로 발급받을 수 있는 Let's Encrypt 인증서의 경우 무료인증서중에는 1픽이기때문에 쉽게 따라해서 설치해주시면 되겠습니다.

 

certbot 및 Nginx용 패키지 설치하기

 

apt install certbot python3-certbot-nginx

 

image.png.jpg

 

패키지 설치가 완료되었으면 nginx 설정을 변경해주셔야 합니다.

 

2. Nginx 설정 변경하기

 

vi /etc/nginx/sites-available/defualt 혹은 [도메인]

파일에 들어가서 server_name

 

image.png.jpg

 

설정변경이 완료되었으면 service nginx restart 로 서비스를 재싲가 시켜주세요.

 

3. SSL 인증서 발급 및 암호키 생성하기.

이제 바로 SSL 인증서를 발급받아보겠습니다.

 

sudo certbot --nginx -d [도메인]

 

image.png.jpg

 

왠만한거는 다 Yes,Agree등을해주셔도 되고

아래 문항에 대해서는 http사용시 https로 강제리다이렉트를 시켜줄까? 라는 문항이기 때문에 한번생각해보시고 선택해주시면되겠습니다.

 

그럼 자동으로 ssl 인증서 발급이 완료됩니다.

 

image.png.jpg

 

중간의 경로에 인증키가 들어있는데 경로를 기억해두고 인증서에 사용될 암호키를 생성해보겠습니다..

암호키 생성은 openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 명령어로 하면된다.4096이 보안은 더 뛰어난데 오래걸림;

자 이제 정리해보면
생성한 SSL 인증서의 위치는 /etc/letsencrypt/live/도메인명/fullcahin.pem, /etc/letsencrypt/live/도메인명/ privkey.pem
암호키는 /etc/ssl/certs/dhparam.pem 에 위치합니다.

이걸 nginx의 도메인에 넣어보겠습니다.

 

4. Nginx 설정 변경하기

앞서 nginx 설정을 변경했는데 또 바꿔야돼?? 라는 생각을 하실건데..

 

앞서 80번으로 접속을 받는 http만 설정했다면 이제 443으로 받는 https에 대한 설정과 보안키 등에 대한 설정이 필요합니다.

혹시 하시다가 잘 안되실거같으면 애초에 파일을 날려주시고 다시 만드시는걸추천드립니다.

 /etc/nginx/sites-available/default

 

[도메인 이름] -> 요거를 실제 도메인 이름으로 넣어주시면 됩니다.

 

server {
        listen 80 ;
        listen [::]:80 ;

        root /var/www/html;

        index index.html index.htm index.nginx-debian.html;

        server_name [도메인 이름];
        location / {
        return 301 https://[도메인 이름]$request_uri; ###### HTTPS www로 리다이렉팅
    }

}
server {
        listen 443 ssl http2;
        listen [::]:443 http2;

        server_name [도메인 이름];

        root /var/www/html;

        index index.php index.html index.htm index.nginx-debian.html;

        ssl_certificate /etc/letsencrypt/live/[도메인 이름]/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/[도메인 이름]/privkey.pem;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 1440m;
        ssl_buffer_size 8k;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';
        ssl_prefer_server_ciphers on;
        ssl_stapling on;
        ssl_stapling_verify on;
        
        access_log  /var/log/nginx/web.access.log;
        error_log /var/log/nginx/web.error.log;

        location / {
                try_files $uri $uri/ /index.php?$args;
                }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.0-fpm.sock;
                }

}
 

 

완료 된 뒤에 시크릿 탭같은걸 띄워서 도메인 에 접근해보면 아래처럼 자동으로 https에 연결되고 인증서도 발급이 됩니다.

 

 

image.png.jpg

신고공유스크랩
2

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
오픈소스 개인 구독 추적기 Wallos 8 달소 3일 전23:26 354 +3
질문 /var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 5일 전20:42 299 +1
잡담 jellyfin 자원 진짜 안쓰네요 1 kmw_ 5일 전19:26 466 +1
456 정보
image
지딱코 24.05.02.14:31 256 +1
455 정보
image
달소 24.05.01.05:38 156 0
454 정보
image
달소 24.04.25.08:21 196 +1
453 정보
normal
행복구슬 24.04.07.13:38 1257 +5
452 정보
image
DarkAcid 24.03.30.09:32 342 +2
451 정보
image
달소 24.03.28.22:48 193 +1
450 정보
image
Razorbacks 24.03.28.18:06 177 +1
449 정보
image
툭툭이 24.03.28.11:14 943 +17
448 정보
image
서맹 24.03.10.15:34 344 +1
447 정보
normal
서맹 24.03.09.17:09 219 +1
446 정보
image
달소 24.03.09.05:27 59 0
445 정보
image
달소 24.03.08.16:02 205 +2
444 정보
normal
서맹 24.03.08.15:15 185 +1
443 정보
normal
SHISHAMO 24.03.03.16:08 498 +1
442 정보
image
똥쓰똥쓰 24.03.01.13:15 668 +3
441 정보
image
honey720 24.02.28.00:20 249 +6
440 정보
image
권씨아저씨 24.02.24.21:41 206 +1
439 정보
image
콜라 24.02.23.16:30 150 +1
438 정보
normal
very 24.02.23.13:54 162 0
437 정보
normal
KelvinKang 24.02.20.20:35 117 +1