개발 블로그
[교육] SSL 설정하기 본문
여기 암것도 없으면 ssl_module을 옵션으로 줘서
다시 아파치를 삭제하고 새로 config하거나
다운받아서 추가 해줘야함
나는 전자..
Certbot 설치
(1) EPEL 리포지터리 추가
yum install epel-release -y
(2) Certbot
yum install certbot -y
(3) mod_ssl
yum install mod_ssl 명령어 해주고
SSL 인증서 및 개인 키 생성:
OpenSSL을 사용하여 SSL 인증서(certificate.crt)와 개인 키(private.key)를 생성합니다.
Self-Signed 인증서기 때문에 어떤 브라우저가 인식하지 못하는 기관이기 때문에
여전히 브라우저 경고문이 뜨지만 연습용으로 하는거니까 ~
- -x509: Self-Signed 인증서를 생성하는 옵션입니다.
- -nodes: 인증서와 개인 키를 암호화하지 않도록 지정합니다.
- -newkey rsa:2048: RSA 알고리즘과 2048 비트의 개인 키를 생성합니다.
- -keyout private.key: 생성된 개인 키를 저장할 파일명입니다.
- -out certificate.crt: 생성된 SSL 인증서를 저장할 파일명입니다.
- -days 365: 인증서의 유효 기간을 설정합니다. 예제에서는 365일로 설정하였습니다.
- -subj "/CN=vitamin.com": 인증서의 공통 이름(Common Name)을 vitamin.com으로 설정합니다.
명령어를 실행하면 OpenSSL이 요구하는 정보를 입력하라는 메시지가 나타납니다.
필요한 정보를 입력하고 나면 private.key와 certificate.crt 파일이 생성됩니다.
SSL 인증서 및 개인 키 생성:
[root@localhost ~]# openssl req -x509 -nodes -newkey rsa:2048 -keyout private.key -out certificate.crt -days 365 -subj "/CN=vitamin.com"
나는 vitamin.com 으로 도메인을 설정했음..
vi /etc/hosts
호스트 파일을 수정하여 특정 도메인을 127.0.0.1로 매핑하는 방법은 다음과 같다
localhost는 로컬 디바이스에서 사용되는 도메인 이름이며, 127.0.0.1은 현재 기기의 로컬 IP 주소를 의미함
DNS 캐시 비우기: 변경 사항이 즉시 반영되지 않을 경우, DNS 캐시를 비우고
시스템에 새로운 DNS 정보를 적용할 수 있습니다
CentOS 7에서 DNS 캐시를 비우는 방법은 사용하는 DNS 캐싱 서비스에 따라 다를 수 있습니다.
보통 사용되는 서비스는 nscd (Name Service Cache Daemon) 또는 dnsmasq입니다
1. nscd 사용 시
sudo systemctl restart nscd
2. dnsmasq 사용 시
sudo systemctl restart dnsmasq
vi /engine/apache/conf/httpd.conf
편집기로 들어가
httpd.conf 파일에는
지난 아파치 톰캣 연동으로 VirtualHost 설정이 되어있는데 바로 밑에 443 설정도 추가하기
# 새로운 가상 호스트 설정 추가
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/engine/apache2.4/htdocs"
# 정적 파일을 제공할 경로 설정
<Directory "/engine/apache2.4/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# 특정 파일 형식의 요청을 Tomcat으로 전달
JkMount /*.jsp worker1
JkMount /*.do worker1
JkMount /*.json worker1
JkMount /*.xml worker1
</VirtualHost>
<VirtualHost *:443>
ServerName vitamin.com
DocumentRoot "/engine/apache2.4/htdocs"
SSLEngine on
# SSLProtocol all -SSLv2
# SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile "/engine/apache2.4/ssllib/certificate.crt"
SSLCertificateKeyFile "/engine/apache2.4/ssllib/private.key"
# 기타 SSL 관련 설정 (옵션)
# 정적 파일을 제공할 경로 설정
<Directory "/engine/apache2.4/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# 특정 파일 형식의 요청을 Tomcat으로 전달
JkMount /*.jsp worker1
JkMount /*.do worker1
JkMount /*.json worker1
JkMount /*.xml worker1
</VirtualHost>
(주석으로 막은거는 부장님이 보내주신 코드인데 주석으로 막아도 문제 없이 작동한다)
앞선 인증 파일 인증 키 파일 위치 맞는지 제대로 작성해주고
apachectl configtest로 작성 오류같은게 없는지 검사하기
아파치 작동은 되는데요..
[root@localhost ~]# netstat -tuln | grep :443
[root@localhost ~]# netstat -tuln | grep :80
아니 그런데 아파치 80포트는 켜져도 443포트가 아무리 해도 안켜지는 것이다~~~
여기에 Listen 443을 적었더니 정상적으로 ssl이 작동하기 시작했다
'리눅스 | 서버' 카테고리의 다른 글
[이것이 리눅스다] 포트 포워딩 (0) | 2024.07.24 |
---|---|
[이것이 리눅스다] 방화벽 서버 (0) | 2024.07.23 |
[교육] 아파치, 톰캣 폴더 url에 따라 연결하기 (0) | 2024.06.27 |
[교육] mod_ssl 모듈을 추가한 아파치 재 설치 + 아파치 톰캣 연동 (0) | 2024.06.26 |
[교육] 서버 기본 학습 시험 2차 (0) | 2024.06.04 |