본문 바로가기
(TEMP)

apache SSL 인증서 적용 방법 with selinux

by open_tracking 2021. 11. 3.

       

ssl.conf 파일을 열어서 아래와 같이 적용

 

SSLCertificateFile /etc/httpd/해당경로/SSLCertificate인증서
SSLCertificateKeyFile /etc/httpd/해당경로/SSLCertificate key파일
SSLCACertificateFile /etc/httpd/해당경로/SSLCACertificate인증서

 

ex)

        SSLCertificateFile /etc/httpd/conf.d/ssl/open-infra.crt
        SSLCertificateKeyFile /etc/httpd/conf.d/ssl/open-infra.key
        SSLCACertificateFile /etc/httpd/conf.d/ssl/ca_open-infra.crt

 

 

 

보통 인증서발급받으면 key파일에 비밀번호가 걸려있어서 데몬 재시작시 비멀번호를 물어봐서 불편한 경우가 있어서

key파일 비밀번호 없애는 방법은 아래와 같이 한다.

 

[root@www hope201]# openssl rsa -in open-infra.key -out open-infra.nopass.key

 

Selinux 사용중인 경우에는 selinux  context를 맞춰야 정상적으로 가능하다.

아파치에서는

SSL Library Error: error:0200100D:system library:fopen:Permission denied

server certificate does NOT include an ID which matches the server name

위와 같은 로그가 나타난다.

 

/var/log/audit/audit.log 로그에서는 아래와 같이 나타난다.

type=AVC msg=audit(1635841018.778:75872): avc:  denied  { read } for  pid=1235773 comm="httpd" name="ca_open-infra.crt" dev="sda3" ino=16801619 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=0

 

해당 인증서 경로로 이동하여 ll -aZ 쳐보면 unconfined_u 로 표시된는 것을 볼 수 있다.

정상적으로 작동하려면 아래와 같이 맞추어야한다.

system_u:object_r:httpd_config_t:s0

 

아래와 같은 명령어로 설정 가능하다.

[root@www hope201]# chcon -u system_u 해당파일

 httpd_config_t 도 정의되어있지 않다면 아래와 같은 방법으로 처리가능하다.

 chcon -t  httpd_config_t  해당파일 

 

변경 후 아파치 데몬을 재시작하면 해결된다.

 

Selinux 문제여서 안되는지 아래와 같은 방법으로 Enforce 인지 확인하고

[root@www hope201]# getenforce

Enforcing 이라고 표기된다면

임시로 Selinux를 내리고 확인해볼 수 있다.

[root@www hope201]# setenforce 0

 

댓글