더 나은 프로그래머가 되자

SSL보안서버인증서 설치방법 CentOS Apache 본문

리눅스

SSL보안서버인증서 설치방법 CentOS Apache

greathuman 2022. 10. 20. 09:27

출처 : https://blog.naver.com/phongdaegi/221988174349 써트코리아

 

 

1. Apache 버전 및 환경 확인하기

● Apache 프로세스 확인

# ps -ef | grep httpd

위와 같이 /usr/sbin/httpd 경로에 있을 경우, 환경설정 파일은

/etc/httpd/conf , /etc/httpd/conf.d 폴더에 위치함.

● Apache 버전 확인

# httpd -v

이 때, Apache 1.X ~ 2.0 버전 사용중이시라면, 2.2 이상으로

버전 업그레이드를 권장 드립니다.

● SSL 모듈 설치 확인

# httpd -l

위와 같이 mod_so.c 가 있고, mod_ssl 이 없을 경우 동적 모듈(DSO)

설치된 Apache 입니다.

이 경우, modules 폴더 내에 mod_ssl.so 파일이 있는지 확인합니다.

 

만약 mod_ssl.so 파일이 없다면, CentOS 기준으로 아래와 같이 mod_ssl 을 설치합니다.

# yum install mod_ssl

정적 모듈(Statically)로 설치된 경우, 아래와 같이 mod_ssl.c 파일이 나타납니다.

만일 mod_ssl.c 파일이 없다면, Apache를 다시 컴파일하셔야 합니다.

2. OpenSSL 버전 확인

명령어로 간단하게 확인 가능합니다.

# openssl version

1.0.1e 이상 권장 드립니다.

만약 openssl 이 설치되지 않은 경우, CentOS 기준으로 yum install openssl 명령어 등을 사용하여 설치합니다.

3. 인증서 파일 확인 및 저장

써트코리아에서 받으신 경우 아래와 같은 파일로 구성되어 있습니다.

◆ www.domain.com.crt : 인증서 파일(공개키)

◆ www.domain.com.key : 개인키 파일(비밀키)

◆ chainca.crt : 루트/중개 인증서 파일

위 3개 파일을 Apache 폴더 내 임의의 폴더로 옮겨줍니다.

(ex : /etc/httpd/conf/ssl )

4. SSL 인증서 설치

httpd.conf 파일에서 mod_ssl 모듈을 Load 하고 있는지 확인합니다.

주석처리 되어 있다면 주석을 풀어줍니다.

만약 DSO 환경에서 LoadModule 하는 부분이 없다면, 아래와 같은 구성일 것입니다.

위에서 Include하고 있는 conf.modules.d/ 폴더로 이동하여

00-ssl.conf 파일이 있는지 확인하고

해당 파일 내용에 LoadModule 하고 있는지 확인합니다.

mod_ssl 을 Load 하는지 확인하였다면, 이제 SSL conf 파일을 찾아

내용을 수정할 차례입니다.

SSL conf 파일은 대체로 아래와 같은 경로에 있습니다.

/etc/httpd/conf.d/ssl.conf (yum 으로 설치한 케이스)

/usr/local/apache/conf/extra/httpd-ssl.conf (직접 컴파일 한 케이스)

이제 SSL conf 파일을 열어서 내용을 수정합니다.

DocumentRoot : 페이지가 열릴 기본 루트 경로

ServerName : 사이트 기본 도메인

ServerAlias : 해당 사이트의 Alias 도메인들이 있다면 추가합니다.

SSLCertificateFile : 인증서 파일 경로

SSLCertificateKeyFile : 비밀키 파일 경로

SSLCACertificateFile : 루트/중개 인증서 파일 경로

이제 해당 파일을 저장합니다.

※ Tip

- 만약 보안 강도를 높게 설정하고 싶으시다면 아래 URL 에 접속하여 Apache와

OpenSSL 버전을 입력하여생성된 Conf 내용을 참고하여 설정하시면 좋습니다.

- Mozilla(파이어폭스 개발 재단)에서 권장하는 표준 SSL 보안을 적용할 수 있습니다.

https://mozilla.github.io/server-side-tls/ssl-config-generator/

5. 서비스 재시작

SSL conf 설정을 마쳤다면 이제 구문 오류가 없는지 확인합니다.

# httpd –t

문제가 없다면 Apache를 재시작 합니다.

# systemctl restart httpd

# systemctl status httpd

이제 443 포트가 정상적으로 올라왔는지 확인합니다.

# netstat -anp | grep httpd

※ Tip

openssl 명령어를 통하여 443 포트에 직접 접근하여 인증서 정보도 확인 가능합니다.

#openssl s_client -connect 127.0.0.1:443 | openssl x509 -noout -dates -subject

▲ 유효 기간과 인증서에 등록된 도메인 명 확인 가능

이제 https 으로 사이트에 접속하여 자물쇠 및 인증서를 최종 확인합니다.

 

Comments