./httpd
, ./apachectl
명령어는 usr/sbin(시스템 바이너리 디렉토리)에서 사용ssl 설정을 하려면 httpd-ssl.conf
or ssl.conf
파일이 필요한데 나의 경우 없었다.
mod_ssl 모듈이 설치되지 않아서 그런 것이다..
httpd -l
, apachectl -l
명령어로 확인해보았지만 설치가 되어있지 않았고,
모듈경로에도 따로 보이지 않았기 때문에 설치했어야 했다.
[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을 못써서 나는 에러라고 한다..
[root@web/]# getconf LONG_BIT
64
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
yum install mode_ssl -y
실행[error] Yum repo fails with [Errno 14] problem making ssl connection
이번엔 위와 같은 에러가 뜨기 시작..
CentOS-Base.repo
파일을 바꿔야 된다고 한다.
CentOS-Base.repo
파일 열기[root@web/]# vi /etc/yum.repos.d/CentOS-Base.repo
꼭! 백업 잊지말기!
[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
[root@web/]# yum update
...
[root@web/]# yum install mode_ssl -y
성공..!
모듈설치가 성공적으로 되어있다면 아파치 설정 디렉토리에 설정파일이 생겼을 것이다.
나의 경우 /etc/httpd/conf.d/ssl.conf
파일이 생겼다.
또한 모듈설치 경로에 mod_ssl.so
파일이 생성되었다.
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
이름은 임시로 변경하였다.
위와 같이 3개의 파일을 SSL 인증서 발급하는 사이트에서 받았다.
받은 파일을 원하는 경로에 저장해두고 기억해두자. 나의 경우 /etc/cert
폴더에 두었다.
[root@web/]# vi /etc/httpd/conf.d/ssl.conf
나의 경우 서버가 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 이상에서만 지원되기 때문에 제외하였다.
설정한 파일들에 오류구문이 없는지 확인해보자.
[root@web/]# ./apachectl configtest
Syntax OK
or
[root@web/]# ./httpd configtest
Syntax OK
중복되는 구문이 있다고도 할 수 있지만 Syntax OK
가 나온다면 성공!
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 인증서 적용방법