CentOS SSL 인증서 적용하기

mason.98·2024년 4월 17일
0

알쓸코잡

목록 보기
17/18
post-thumbnail
  • WEB/WAS 서버 중 WEB 서버에 설정
  • 443 포트 개방 따로 했음
  • Apache/2.2.15
  • OpenSSL 1.0.le-fips 11 Feb 2013
  • 아파치 환경설정파일 경로 : /etc/httpd/conf/httpd.conf
  • 모듈 경로: /usr/lib64/httpd/modules
  • ./httpd, ./apachectl 명령어는 usr/sbin(시스템 바이너리 디렉토리)에서 사용

1. mod_ssl 모듈 설치 확인

ssl 설정을 하려면 httpd-ssl.conf or ssl.conf 파일이 필요한데 나의 경우 없었다.
mod_ssl 모듈이 설치되지 않아서 그런 것이다..

httpd -l, apachectl -l 명령어로 확인해보았지만 설치가 되어있지 않았고,
모듈경로에도 따로 보이지 않았기 때문에 설치했어야 했다.


2. mod_ssl 모듈 설치

[root@web/]# yum install mod_ssl -y
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base

yum으로 설치하고자 했지만 위와 같이 오류 발생..
해당 WEB서버는 CentOS를 사용하고 있었는데 지원종료로 yum을 못써서 나는 에러라고 한다..

1. yum 에러 해결방안 첫번째

1) CentOS bit 확인

[root@web/]# getconf LONG_BIT
 64

2) bit에 맞춰 아래 3출 명령어 입력

32Bit : 
echo "https://vault.centos.org/6.10/os/i386/" > /var/cache/yum/i386/6/base/mirrorlist.txt
echo "http://vault.centos.org/6.10/extras/i386/" > /var/cache/yum/i386/6/extras/mirrorlist.txt
echo "http://vault.centos.org/6.10/updates/i386/" > /var/cache/yum/i386/6/updates/mirrorlist.txt

64Bit :
echo "https://vault.centos.org/6.10/os/x86_64/" > /var/cache/yum/x86_64/6/base/mirrorlist.txt
echo "http://vault.centos.org/6.10/extras/x86_64/" > /var/cache/yum/x86_64/6/extras/mirrorlist.txt
echo "http://vault.centos.org/6.10/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt

3) 다시 yum install mode_ssl -y 실행


2. yum 에러 해결방안 두번째

[error] Yum repo fails with [Errno 14] problem making ssl connection

이번엔 위와 같은 에러가 뜨기 시작..
CentOS-Base.repo파일을 바꿔야 된다고 한다.

1) CentOS-Base.repo 파일 열기

[root@web/]# vi /etc/yum.repos.d/CentOS-Base.repo

2) 해당 파일 내용을 모두 지우고 아래와 같이 수정하였다.

꼭! 백업 잊지말기!
[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.iij.ad.jp/pub/linux/centos-vault/centos/$releasever/os/$basearch/
gpgcheck=0
priority=1
protect=1

[update]
name=CentOS-$releasever - Updates
baseurl=http://ftp.iij.ad.jp/pub/linux/centos-vault/centos/$releasever/updates/$basearch/
gpgcheck=0
priority=1
protect=1

[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.iij.ad.jp/pub/linux/centos-vault/centos/$releasever/extras/$basearch/
gpgcheck=0
priority=1
protect=1

3) yum 업데이트 및 mod_ssl 모듈 설치하기

[root@web/]# yum update
...
[root@web/]# yum install mode_ssl -y

성공..!

4) mod_ssl 모듈 설치 확인하기

모듈설치가 성공적으로 되어있다면 아파치 설정 디렉토리에 설정파일이 생겼을 것이다.
나의 경우 /etc/httpd/conf.d/ssl.conf 파일이 생겼다.
또한 모듈설치 경로에 mod_ssl.so 파일이 생성되었다.


3. httpd.conf 설정하기

1) 아파치 설정파일을 열어보자

[root@web/]# vi /etc/httpd/conf/httpd.conf

2) mod_ssl 모듈 설정을 해보자

# mod_ssl 모듈 설정하기
LoadModule ...
LoadModule ssl_module modules/mod_ssl.so
LoadModule ...

# ssl.conf파일 Include 하기
Include conf.d/*.conf

4. 인증서 파일 서버에 저장하기

이름은 임시로 변경하였다.
위와 같이 3개의 파일을 SSL 인증서 발급하는 사이트에서 받았다.
받은 파일을 원하는 경로에 저장해두고 기억해두자. 나의 경우 /etc/cert 폴더에 두었다.


5. ssl.conf 설정하기

1) ssl 설정파일을 열어보자

[root@web/]# vi /etc/httpd/conf.d/ssl.conf

2) ssl 설정을 해보자

나의 경우 서버가 WEB/WAS 두 개로 나뉘어져 있었고,
jkMount를 이용해서 톰캣과 연동하고 있었으므로 jkMount설정을 ssl.conf에 복사해야 했다.
jkMount의 설정은 httpd.conf에서 가져왔다.

아래 코드에서 jkMount 설정부분은 제외하였다.

# ssl 모듈 설정하기
LoadModule ssl_module modules/mod_ssl.so
...
...
...

<VirtualHost _default_:443>
	# documentRoot, ServerName 동기화 (httpd.conf 내용 그대로)
    # ServerName에 www를 붙여줘야 한다.
	DocumentRoot "..." 
	ServerName www.aaa.aaa:443
    
    # SSL 환경 설정
    SSLEngine on
	SSLProtocol –All +TLSv1.2
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCMSHA384:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSAAES256-GCM-SHA384
    
    # SSL 인증서(crt), 개인키(key), 체인(chainca) 파일설정
    SSLCertificateFile /etc/cert/aaa.crt
    SSLCertificateKeyFile /etc/cert/aaa.key
    SSLCACertificateFile /etc/cert/chainca.crt

SSL 환경설정에서 TLS1.3은 openssl 1.1.1 이상에서만 지원되기 때문에 제외하였다.

3) syntax 오류 테스트하기

설정한 파일들에 오류구문이 없는지 확인해보자.

[root@web/]# ./apachectl configtest
Syntax OK

or

[root@web/]# ./httpd configtest
Syntax OK

중복되는 구문이 있다고도 할 수 있지만 Syntax OK가 나온다면 성공!


6. Apache/Tomcat 재기동

WAS서버에서 Apache 재기동 이후, WEB서버에서도 Tomcat을 재기동하였다.

# WEB 서버 Apache 재기동
[root@web/]# ./apachectl stop
[root@web/]# ./apachectl start


# WAS 서버 Tomcat 재기동
[root@was/]# /usr/local/server/apache-tomcat-7.0.82/bin/catalina.sh stop
[root@was/]# /usr/local/server/apache-tomcat-7.0.82/bin/catalina.sh start

사이트에 들어가서 확인!


CentOS yum update 오류
Apache Server에 SSL 인증서 적용하기
Apache jkModule과 함께 적용하기
Yum repo fails with [Errno 14] problem making ssl connection
CentOS7 Apache SSL 인증서 적용
써트코리아 SSL 인증서 적용방법

profile
wannabe---ing

0개의 댓글