Let's Encrypt로 항구 설정하기
6998 단어 letsencrypttutorialharbordocker
요구 사항
Certbot / Let's Encrypt
먼저 Certbot을 설치하여 컴퓨터에 Let's Encrypt 인증서를 생성해야 합니다. Ubuntu에서는 다음과 같이 snap을 사용하여 쉽게 수행할 수 있습니다.
$ snap install certbot --classic
그런 다음 Certbot의 독립 실행형 모드를 사용하여 Harbour 도메인에 대한 새 인증서를 만들고 원하는 도메인을 매개변수로 추가할 수 있습니다. Certbot을 처음 실행할 때 인증서를 생성하기 전에 유효한 이메일 주소를 요청하고 서비스 약관에 동의합니다.
$ certbot certonly --standalone -d registry.example.com
명령이 완료되면 다음 출력을 제공해야 합니다.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/registry.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/registry.example.com/privkey.pem
Your certificate will expire on 2021-04-21. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
마지막으로/etc/letsencrypt/live의 관련 도메인 폴더에서 인증서 파일을 찾을 수 있습니다.
$ ls /etc/letsencrypt/live/registry.example.com
README cert.pem chain.pem fullchain.pem privkey.pem
항구
이제 시스템에 Harbour 설치를 계속할 수 있습니다. Harbor GitHub Releases page 으로 이동하여 최신 설치 프로그램을 다운로드하고 아카이브를 추출합니다.
$ wget https://github.com/goharbor/harbor/releases/download/v2.1.3/harbor-online-installer-v2.1.3.tgz
$ tar xvf harbor-online-installer-v2.1.3.tgz
Harbour 인스턴스를 구성하기 위해 추출된 Harbour 구성 템플릿의 복사본을 만들고 편집기로 열 수 있습니다.
$ cd harbor
$ cp harbor.yml.tmpl harbor.yml
$ vim harbor.yml
구성 파일은 Harbour 인스턴스를 구성하고 사용자 지정하기 위한 많은 속성을 제공합니다. 최소한의 설치의 경우 다음 값을 변경하는 것으로 충분합니다.
# Change the hostname to your domain configured earlier
hostname: reg.mydomain.com
# Keep the http and https port configuration, but change the path of
# the certificate files to the Let's Encrypt certificate
http:
port: 80
https:
port: 443
certificate: /your/certificate/path
private_key: /your/private/key/path
# Change the admin password to something more secure
harbor_admin_password: Harbor12345
# Change the database password to something more secure
database:
password: root123
구성이 적용되면 Harbor는 설치 스크립트를 사용하여 배포할 준비가 됩니다.
$ ./install.sh
...
✔ ----Harbor has been installed and started successfully.----
마지막으로 Harbour 인스턴스의 도메인을 브라우저에서 열어 결과를 확인해보자. 유효한 인증서로 보호되는 Harbor 로그인 페이지가 표시되어야 합니다.
인증서 갱신
Certbot은 만료되기 전에 요청된 인증서를 자동으로 갱신하기 위해 Cronjob/Timer를 생성합니다.
$ systemctl list-timers
Fri 2021-01-22 07:10:00 CET 5h 57min left Thu 2021-01-21 22:20:02 CET 2h 52min ago snap.certbot.renew.timer snap.certbot.renew.service
현재 Harbour의 Nginx 컨테이너가 시스템에서 이미 포트 80을 사용하고 있기 때문에 이 갱신은 실패합니다. 이 포트는 Certbot이 기존 인증서를 갱신하는 데 필요합니다.
다행히 Certbot은 인증서를 갱신하기 전/후에 서비스 실행을 중지/시작하기 위해 생성할 수 있는 사전/사후 후크를 제공합니다.
이러한 후크는/etc/letsencrypt/renewal-hooks/{pre|post}에서 생성할 수 있습니다. 갱신 작업을 실행하기 전에 Harbor의 Nginx 컨테이너를 중지하는 스크립트를 만들어 보겠습니다.
$ vim /etc/letsencrypt/renewal-hooks/pre/harbor.sh
Insert the following content:
#!/bin/bash
/usr/bin/docker stop nginx
Make the script executable:
$ chmod 755 /etc/letsencrypt/renewal-hooks/pre/harbor.sh
이제 새로 갱신된 인증서를 Harbour의 데이터 디렉토리에 복사하고 Nginx 컨테이너를 다시 시작하기 위한 post-hook 스크립트도 생성해야 합니다. 후크 후 스크립트를 만들고 다음 콘텐츠를 추가합니다.
$ vim /etc/letsencrypt/renewal-hooks/post/harbor.sh
Insert the following content:
#!/bin/bash
cp -f /etc/letsencrypt/live/registry.example.com/fullchain.pem /data/secret/cert/server.crt
cp -f /etc/letsencrypt/live/registry.example.com/privkey.pem /data/secret/cert/server.key
/usr/bin/docker start nginx
Make the script executable:
$ chmod 755 /etc/letsencrypt/renewal-hooks/post/harbor.sh
설정에 따라 경로를 변경하는 것을 염두에 두십시오. Harbor에 대해 구성된 데이터 디렉토리는 Harbor.yml 파일에서 찾을 수 있습니다.
스크립트가 올바르게 구성되었는지 확인하기 위해 테스트 실행 모드에서 Certbot의 갱신 명령을 사용하여 인증서 갱신을 테스트할 수 있습니다. 다음 출력이 표시되어야 합니다.
$ certbot renew --dry-run
...
Running pre-hook command: /etc/letsencrypt/renewal-hooks/pre/harbor.sh
Output from pre-hook command harbor.sh:
nginx
...
Running post-hook command: /etc/letsencrypt/renewal-hooks/post/harbor.sh
Output from post-hook command harbor.sh:
nginx
이제 설정이 완료되었습니다. Harbour 인스턴스가 실행 중이어야 하며 Let's Encrypt 인증서가 자동으로 갱신되어야 합니다.
Reference
이 문제에 관하여(Let's Encrypt로 항구 설정하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/cedrichopf/setup-harbor-with-let-s-encrypt-40cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ snap install certbot --classic
$ certbot certonly --standalone -d registry.example.com
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/registry.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/registry.example.com/privkey.pem
Your certificate will expire on 2021-04-21. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
$ ls /etc/letsencrypt/live/registry.example.com
README cert.pem chain.pem fullchain.pem privkey.pem
이제 시스템에 Harbour 설치를 계속할 수 있습니다. Harbor GitHub Releases page 으로 이동하여 최신 설치 프로그램을 다운로드하고 아카이브를 추출합니다.
$ wget https://github.com/goharbor/harbor/releases/download/v2.1.3/harbor-online-installer-v2.1.3.tgz
$ tar xvf harbor-online-installer-v2.1.3.tgz
Harbour 인스턴스를 구성하기 위해 추출된 Harbour 구성 템플릿의 복사본을 만들고 편집기로 열 수 있습니다.
$ cd harbor
$ cp harbor.yml.tmpl harbor.yml
$ vim harbor.yml
구성 파일은 Harbour 인스턴스를 구성하고 사용자 지정하기 위한 많은 속성을 제공합니다. 최소한의 설치의 경우 다음 값을 변경하는 것으로 충분합니다.
# Change the hostname to your domain configured earlier
hostname: reg.mydomain.com
# Keep the http and https port configuration, but change the path of
# the certificate files to the Let's Encrypt certificate
http:
port: 80
https:
port: 443
certificate: /your/certificate/path
private_key: /your/private/key/path
# Change the admin password to something more secure
harbor_admin_password: Harbor12345
# Change the database password to something more secure
database:
password: root123
구성이 적용되면 Harbor는 설치 스크립트를 사용하여 배포할 준비가 됩니다.
$ ./install.sh
...
✔ ----Harbor has been installed and started successfully.----
마지막으로 Harbour 인스턴스의 도메인을 브라우저에서 열어 결과를 확인해보자. 유효한 인증서로 보호되는 Harbor 로그인 페이지가 표시되어야 합니다.
인증서 갱신
Certbot은 만료되기 전에 요청된 인증서를 자동으로 갱신하기 위해 Cronjob/Timer를 생성합니다.
$ systemctl list-timers
Fri 2021-01-22 07:10:00 CET 5h 57min left Thu 2021-01-21 22:20:02 CET 2h 52min ago snap.certbot.renew.timer snap.certbot.renew.service
현재 Harbour의 Nginx 컨테이너가 시스템에서 이미 포트 80을 사용하고 있기 때문에 이 갱신은 실패합니다. 이 포트는 Certbot이 기존 인증서를 갱신하는 데 필요합니다.
다행히 Certbot은 인증서를 갱신하기 전/후에 서비스 실행을 중지/시작하기 위해 생성할 수 있는 사전/사후 후크를 제공합니다.
이러한 후크는/etc/letsencrypt/renewal-hooks/{pre|post}에서 생성할 수 있습니다. 갱신 작업을 실행하기 전에 Harbor의 Nginx 컨테이너를 중지하는 스크립트를 만들어 보겠습니다.
$ vim /etc/letsencrypt/renewal-hooks/pre/harbor.sh
Insert the following content:
#!/bin/bash
/usr/bin/docker stop nginx
Make the script executable:
$ chmod 755 /etc/letsencrypt/renewal-hooks/pre/harbor.sh
이제 새로 갱신된 인증서를 Harbour의 데이터 디렉토리에 복사하고 Nginx 컨테이너를 다시 시작하기 위한 post-hook 스크립트도 생성해야 합니다. 후크 후 스크립트를 만들고 다음 콘텐츠를 추가합니다.
$ vim /etc/letsencrypt/renewal-hooks/post/harbor.sh
Insert the following content:
#!/bin/bash
cp -f /etc/letsencrypt/live/registry.example.com/fullchain.pem /data/secret/cert/server.crt
cp -f /etc/letsencrypt/live/registry.example.com/privkey.pem /data/secret/cert/server.key
/usr/bin/docker start nginx
Make the script executable:
$ chmod 755 /etc/letsencrypt/renewal-hooks/post/harbor.sh
설정에 따라 경로를 변경하는 것을 염두에 두십시오. Harbor에 대해 구성된 데이터 디렉토리는 Harbor.yml 파일에서 찾을 수 있습니다.
스크립트가 올바르게 구성되었는지 확인하기 위해 테스트 실행 모드에서 Certbot의 갱신 명령을 사용하여 인증서 갱신을 테스트할 수 있습니다. 다음 출력이 표시되어야 합니다.
$ certbot renew --dry-run
...
Running pre-hook command: /etc/letsencrypt/renewal-hooks/pre/harbor.sh
Output from pre-hook command harbor.sh:
nginx
...
Running post-hook command: /etc/letsencrypt/renewal-hooks/post/harbor.sh
Output from post-hook command harbor.sh:
nginx
이제 설정이 완료되었습니다. Harbour 인스턴스가 실행 중이어야 하며 Let's Encrypt 인증서가 자동으로 갱신되어야 합니다.
Reference
이 문제에 관하여(Let's Encrypt로 항구 설정하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/cedrichopf/setup-harbor-with-let-s-encrypt-40cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ systemctl list-timers
Fri 2021-01-22 07:10:00 CET 5h 57min left Thu 2021-01-21 22:20:02 CET 2h 52min ago snap.certbot.renew.timer snap.certbot.renew.service
$ vim /etc/letsencrypt/renewal-hooks/pre/harbor.sh
Insert the following content:
#!/bin/bash
/usr/bin/docker stop nginx
Make the script executable:
$ chmod 755 /etc/letsencrypt/renewal-hooks/pre/harbor.sh
$ vim /etc/letsencrypt/renewal-hooks/post/harbor.sh
Insert the following content:
#!/bin/bash
cp -f /etc/letsencrypt/live/registry.example.com/fullchain.pem /data/secret/cert/server.crt
cp -f /etc/letsencrypt/live/registry.example.com/privkey.pem /data/secret/cert/server.key
/usr/bin/docker start nginx
Make the script executable:
$ chmod 755 /etc/letsencrypt/renewal-hooks/post/harbor.sh
$ certbot renew --dry-run
...
Running pre-hook command: /etc/letsencrypt/renewal-hooks/pre/harbor.sh
Output from pre-hook command harbor.sh:
nginx
...
Running post-hook command: /etc/letsencrypt/renewal-hooks/post/harbor.sh
Output from post-hook command harbor.sh:
nginx
Reference
이 문제에 관하여(Let's Encrypt로 항구 설정하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cedrichopf/setup-harbor-with-let-s-encrypt-40cf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)