간혹 대뜸 아차피 Web 서버에 SSL 인증서를 적용해달라는 요청을 받을 때가 있다
이때 참고하려고 간단하게 작성해본다
순서
1. 서버 개인키 생성
2. CSR(Certificate Signing Request) 인증서 생성 (요청서 일종의 인증서 생성 양식)
3. 서버 개인키와 CSR을 통해 CRT 인증서를 생성
4. 아파치 웹서버(httpd)에 적용
*실제 On-Site에서는 인증서를 생성하지 않은 실제 공인 인증서를 적용하니 3번 항목은 필요 없다
서버 개인키 생성
openssl genrsa -des3 -out private.key 2048 / 개인키 암호 입력
*이후 암호를 제거하여 키 사용 시에 암호를 묻지 않도록 한다 (용량이 조금 줄어든다)
CSR 생성
openssl req -new -key private.key -out CSR_Template.csr
*나머진 상관 없으나 Common Name은 도메인 명으로 주의해서 작성한다, 마지막 3개 항목은 공란 처리해도 무관
SSL 인증서 생성
openssl x509 -req -days 365 -in CSR_Template.csr -signkey private.key -out ssl.crt
아파치(httpd) 적용 - 컴파일 버전이 아닌 yum 설치했으므로 설정 경로를 다를 수 있음
*yum install httpd mod_ssl 설치
vi /etc/httpd/conf/httpd.conf 수정
*SELinux 설정 때문에 오류 발생 시
cat /var/log/messages 보면 파일이 없는 것처럼 오류를 뿜는데 그건 SELinux 설정 때문이다 (끄는 거 싫엉)
SSLCertificateFile: file '/SSL/ssl.crt' does not exist or is empty
SSLCertificateFile: file '/SSL/private.key' does not exist or is empty
chcon -t cert_t /SSL/private.key
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 private.key
-rw-r--r--. root root unconfined_u:object_r:cert_t:s0 private.key
chcon -t cert_t /SSL/ssl.crt
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 ssl.crt
-rw-r--r--. root root unconfined_u:object_r:cert_t:s0 ssl.crt
정상 동작 확인 방법
1. netstat -tnlp
2. Web Page
3. curl https://testlocal.net -k (-k옵션은 사설인증서이기 때문에 사용)
#요약
1. openssl genrsa -des3 -out private.key 2048 (암호 입력)
2. openssl req -new -key private.key -out CSR_Template.csr
3. openssl x509 -req -days 365 -in CSR_Template.csr -signkey private.key -out ssl.crt
4. /etc/httpd/conf/httpd.conf 수정
*주의* 방화벽 허용(80, 443), SELinux 설정(끄지 말고 옵션 허용)
##내용 추가##
CSR 생성 시 SAN(Subject Alt Name) DNS 추가 요청이 있을 때 추가하는 방법
RHEL, CentOS 7 기준 /etc/pki/tls/openssl.cnf 수정하는 방법 또는 별도의 .cnf 파일을 만들어 참조하도록 할 수 있다
[ req ]
req_extensions = req_ext 추가
적당한 곳에 아래 항목 추가 [ usr_cert ] 항목 윗줄이 좋음.. 중간쯤에 넣으면 에러남 스크립트 실행 시 위쪽부터 수행 되어 그런듯...
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1 = NameserverAddress
DNS.2 = NameserverAddress
DNS.3 = NameserverAddress
동일하게 CSR 생성 후 확인해본다
openssl req -in CSR_Template.csr -noout -text
끝
'IT Info > Linux' 카테고리의 다른 글
Linux Java 컴파일 설치 방법 [RHEL, CentOS] (0) | 2020.10.20 |
---|---|
Linux 아파치(httpd) 컴파일 설치 방법 [RHEL, CentOS] (0) | 2020.10.20 |
Linux Firwalld 포트 추가 방법 [RHEL, CentOS] (0) | 2020.10.19 |
Linux Local Repository 구성 방법 [RHEL, CentOS] (0) | 2020.10.19 |
Linux 무중단 vDisk 용량 증설 [RHEL, CentOS] (2) | 2020.10.16 |
댓글