앞서 작성한 code-server에 HTTPS를 적용해 보도록 하겠습니다. 이번 글에선 certbot의 nginx옵션 이용해 인증서를 발급받고 적용해 보도록 하겠습니다.

 

편의를 위해 code-server 설치와 nginx를 통한 역방향 프록시 설정에 대한 설명은 스킵하도록 하겠습니다.

 

 

 

01. code-server 설치 및 역방향 프록시 설정.

 

다음 글을 참고하여 code-server를 미리 준비합니다: https://smoh.tistory.com/456

 

[Ubuntu] 아이패드에서 code-server로 코딩 공부 해보기.

아이패드에서 프로그래밍 공부를 해보고자 여러 어플을 찾아봤습니다. 파이썬 같은 경우는 적당한 유료 어플이 있었지만 VSCode와 같은 무료면서 강력한 기능을 가진 어플은 없었습니다. 다양한

smoh.tistory.com

 

** 위 글에선 예시를 위해 AWS의 EC2를 사용하였습니다만 현재는 관리하는 서버에 code-server를 옮겨둔 상태입니다.

** NGINX를 통한 역방향 프록시 설정 방법은 별도로 설명하지 않습니다.

 

 

 

02. CERTBOT 설치.

 

만약 apt 같은 OS 패키지 관리자를 사용하여 설치된 Certbot 패키지가 있는 경우 기존 Certbot은 제거해야 합니다. 다음 명령어로 Certbot을 제거해 주세요.

sudo apt-get remove certbot

 

이제 snap을 사용해 최신 Certbot을 설치해 줍니다. 다음 명령어로 snap을 사용해 Certbot을 설치합니다.

sudo snap install --classic certbot

 

설치가 완료되면 다음 명령어를 실행해 certbot 명령을 실행할 수 있는지 확인합니다.

sudo ln -s /snap/bin/certbot /usr/bin/certbot

 

이제 다음 명령어를 수행해 인증서를 발급받습니다.

sudo certbot certonly --nginx

 

만약 nginx에 여러 개의 사이트가 등록되어 있으면 위의 그림처럼 리스트가 나열됩니다. 발급을 원하는 사이트의 번호를 입력합니다. 만약 입력하지 않는 경우 모든 사이트가 선택됩니다. 

 

이제 인증서 발급이 완료되었습니다. 인증서의 위치는 /etc/letsencrypt/live/사이트명 폴더에 저장됩니다.

 

 

 

03. NGINX 설정 변경.

 

다음 명령어를 통해 nginx의 설정 파일을 엽니다. 전 별도 설정 파일에 server 설정을 관리하고 있습니다. 설정 파일 이름은 사용자에 따라 다릅니다.

sudo vi /etc/nginx/conf.d/my-server.conf

 

설정 파일을 열고 다음과 같이 설정을 추가합니다.

#/etc/nginx/conf.d/my-server.conf
#code-server
server {
  listen 80;
  server_name your.domain.here;
  location / {
    proxy_pass http://localhost:{PORT};
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Accept-Encoding gzip;
  }
  listen [::]:443 ssl ipv6only=on;
  listen 443 ssl;
  ssl_certificate /etc/letsencrypt/live/your.domain.here/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/your.domain.here/privkey.pem;
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

 

이제 다음 명령어로 nginx 서비스를 재시작합니다.

sudo service nginx restart

 

접속해서 확인해 봅시다.

 

 

도메인에 접속하면 https가 정상적으로 적용된 것을 확인할 수 있습니다.

 

 

 

 

 

 

반응형

 

Certbot을 이용해 인증서를 갱신하는 방법에 대해 알아봅니다.

 

 

 

인증서 갱신 하기

 

벌써 인증서를 발급받은 지 세 달이 흘렀나 봅니다. Let's Encrypt로 발급받은 인증서의 만료기간이 거의 다 되었다는 메일이 왔습니다. 인증서를 갱신해 주도록 합니다.

 

인증서를 갱신하는 방법은 매우 간단합니다. 먼저 다음 명령어를 통해 인증서 갱신을 시도해 봅니다.

 

> sudo certbot renew --dry-run

 

--dry-run 옵션을 주고 실행하면 실제로 갱신을 진행하는 것이 아닌 갱신을 한번 시도해 에러가 발생할지 아닐지를 미리 알아볼 수 있습니다.

 

 

에러가 발생하면 위와 같이 에러가 발생한 원인을 알려줍니다. 원인을 보니 80번 포트 바인딩에 실패해 발생한 것 같습니다. 서버에 돌고 있는 NGINX를 잠시 종료하고 다시 시도해 보았습니다.

 

 

이제 정상적으로 성공했습니다. 테스트가 성공했으니 --dry-run 옵션을 빼고 진짜 갱신을 수행해 줍니다.

 

> sudo certbot renew

 

 

정상적으로 인증서가 갱신되었습니다.

 

 

 

갱신된 인증서 확인하기

 

이제 인증서 갱신을 끝마쳤으니 NGINX를 재실행하기 전 인증서들이 제대로 갱신되었나 확인해 보도록 하겠습니다. 다음 명령어를 수행해 인증서 정보를 확인합니다.

 

> sudo certbot certificates

 

 

모든 인증서가 정상적으로 갱신이 된 것을 확인할 수 있습니다.

 

 

 

 

 

반응형

 

시놀로지 NAS 위에 설치한 Minio에 TLS/HTTPS를 적용하는 방법에 대해 알아봅니다.

 

 

 

0. 사전 준비

 

다음 글을 참고하여 미리 Minio를 설치합니다.

2020/10/21 - [Programming] - [MINIO] 시놀로지 NAS에서 MINIO를 이용해 오브젝트 스토리지 구성하기

 

[MINIO] 시놀로지 NAS에서 MINIO를 이용해 오브젝트 스토리지 구성하기

Synology Nas에서 Minio를 이용해 Object storage를 구성하는 방법에 대해 알아봅니다. 이 글은 다음 글을 번역한 내용임을 알려드립니다: medium.com/@JonahAragon/installing-minio-on-synology-diskstation-48..

smoh.tistory.com

 

 

 

 

1. 역방향 프록시 설정.

 

미리 DNS를 준비한 경우 소스와 대상을 설정해 줍니다. 제어판 > 응용프로그램 포털 > 역방향 프록시 > 생성을 클릭해 Minio 접속을 설정해 줍니다.

 

 

위와 같이 설정하면 http로 input.yourhost.com에 접속했을 때 자동으로 NAS의 http:localhost:9000 로 이동됩니다. 물론 input.yourhost.com은 미리 DNS에 등록되어야 합니다. 확인을 누른 뒤 input.yourhost.com로 접속해보세요. Minio 브라우저가 보이시나요?

 

하지만 우리가 필요한건 HTTPS 접속입니다. 리버스 프록시 규칙을 다음과 같이 설정해 주세요.

 

 

내용은 별로 다르지 않습니다. https://input.yourhost.com로 접속했을 때 자동으로 NAS의 localhost:9000의 페이지를 보여줍니다. 위와 같이 저장하고 https://input.yourhost.com로 접속해 보세요. 연결이 잘 되시나요?

 

 

위와 같은 화면이 보이면 정상입니다. 우리는 리버스 프록시만 설정해 우리가 원하는 주소에 Minio 페이지만 연결해 두었지 아직 인증서를 발급받지 않았습니다.

 

 

 

2. 인증서 발급 및 적용.

 

이제 Let's Encrypt를 이용해 인증서를 발급받고 적용해 봅시다. 제어판 > 보안 > 인증서로 이동해 추가 버튼을 클릭해 주세요. "새 인증서 추가"를 선택한 후 "Let's Encrypt에서 인증서 얻기"를 선택합니다. 

 

 

위와 같이 요구하는 정보를 적절한 값으로 채운 후 적용 버튼을 클릭합니다. 도메인 이름이 유효하지 않으면 인증서가 생성되지 않습니다.

 

인증서가 생성되었다면 인증서를 선택 후 구성 버튼을 클릭해 인증서가 적용될 서비스를 선택합니다. 해당 서비스의 인증서를 방금 생성한 인증서로 변경한 뒤 확인 버튼을 눌러 적용합니다. 이제 다시 https://input.yourhost.com로 이동해 보세요. 

 

 

자물쇠 아이콘과 함께 정상적으로 HTTPS연결이 동작하는 것을 확인할 수 있습니다.

 

 

 

3. Explorer로 SSL연결 테스트하기.

 

오브젝트 스토리지에 접속할 수 있도록 하는 여러 브라우저가 존재합니다. 이 글에선 그중 CloudBerry Explorer를 사용해 TLS연결을 테스트해 보도록 하겠습니다. 

 

CloudBerry 공식 홈페이지로 이동해 Explorer를 설치해 줍니다: www.msp360.com/free-products.aspx

 

MSP360™ Free Products | MSP360™ (CloudBerry Lab)

Free products by MSP360™ (formerly CloudBerry Lab).

www.msp360.com

 

Trial 버전으로 받지 말고 Free Product 페이지에서 무료 버전을 다운받고 설치합니다.

 

설치가 완료되면 실행 해 Account를 추가해 줍시다. Account 종류는 "S3 Compatible"를 선택해 줍시다.

 

 

이제 접속정보를 적절히 채워줍니다.

 

 

Service point는 오브젝트 스토리지의 엔드포인트를 의미합니다. https로 접속하는 걸 잊지 마세요. AccessKey와 SecretKey는 Minio를 생성할 때 확인할 수 있습니다. 당연히 UseSSL은 체크해 줍니다. 값을 다 채워주었다면 TestConnection을 클릭해 연결을 테스트해봅시다.

 

 

Connection success 메시지가 보이시나요? 이제 Explorer를 통해서도 Minio를 관리할 수 있습니다.

 

 

 

 

 

반응형

+ Recent posts