OpenSSL과 mod_ssl설치하기
OpenSSL과 mod_ssl 패키지를 설치합니다.
$ sudo dnf install openssl mod_ssl
OpenSSL은 네트워크 통신에서 암호화, 해시, 서명 등 다양한 암호 관련 작업을 수행하기 위한 오픈 소스 라이브러리 및 도구입니다.
mod_ssl은 Apache HTTP 서버용 OpenSSL 모듈입니다. 이 모듈은 Apache 서버에서 SSL/TLS 암호화를 지원하기 위해 사용됩니다.
Certbot 설치하기
python3, augeas-libs, pip 패키지를 설치합니다.
$ sudo dnf install -y python3 augeas-libs pip
Python 가상 환경을 생성합니다. 가상 환경을 사용하면 프로젝트 별로 독립적인 Python 환경을 유지할 수 있습니다.
$ sudo python3 -m venv /opt/certbot/
$ ls /opt/certbot
bin include lib lib64 pyvenv.cfg
$ ls /opt/certbot/bin
Activate.ps1 activate activate.csh activate.fish pip pip3 pip3.9 python python3 python3.9
pip를 최신 버전으로 업그레이드합니다.
$ sudo /opt/certbot/bin/pip install --upgrade pip
Certbot을 설치합니다. Certbot은 Let’s Encrypt를 사용하여 SSL/TLS 인증서를 발급하고 관리하는 도구입니다.
$ sudo /opt/certbot/bin/pip install certbot
/usr/bin/certbot으로 심볼릭 링크를 생성합니다. 이렇게 하면 certbot 명령어를 사용하여 어디서든 Certbot을 실행할 수 있습니다.
$ sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
CA가 서명한 Let’s Encrypt인증서 작성
웹 서버를 정지합니다.
$ sudo systemctl stop httpd
$ sudo certbot certonly --standalone -d tech.zinnunkebi.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): ********@mail.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at.
You must agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Account registered.
Requesting a certificate for tech.zinnunkebi.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/tech.zinnunkebi.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/tech.zinnunkebi.com/privkey.pem
This certificate expires on 2023-10-15.
These files will be updated when the certificate renews.
NEXT STEPS:
- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
인증서 설정
ssl.conf의 마지막 부분에 다음 내용을 추가합니다.
$ sudo vi /etc/httpd/conf.d/ssl.conf
### 중간 생략 ###
<VirtualHost *:443>
DocumentRoot "/var/www/html"
ServerAlias tech.zinnunkebi.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/tech.zinnunkebi.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/tech.zinnunkebi.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/tech.zinnunkebi.com/chain.pem
</VirtualHost>
웹 서버를 기동합니다.
$ sudo systemctl start httpd
인증서 갱신 스케줄 등록
$ sudo dnf install cronie-noanacron
$ sudo vi /etc/crontab
...
# * * * * * user-name command to be executed
# every tue 1:30
30 1 * * 2 root /usr/bin/certbot renew --post-hook "systemctl reload httpd" # Apache
댓글