개발자의 끄적끄적

[linux] 리눅스 apache ssl 설정하기 [펌] 본문

개발/linux

[linux] 리눅스 apache ssl 설정하기 [펌]

효벨 2019. 11. 24. 01:00
728x90
반응형

[linux] 리눅스 apache ssl 설정하기 [펌]

 

리눅스 아파치 세팅을 하다보면 항상 인증서가 문제죠 ㅎㅎ

 

저도 참고용으로 활용하기 위해서 퍼왔습니다! 정리감사합니다!

 

출처는 맨~아래 명시했습니다!!!

 

 

참고사이트

https://www.comodossl.co.kr/certificate/ssl-installation-guides/Apache-privatekey-crt.aspx

 

추가해야하는 내용

openssl csr 생성 하는 방법까지 추가해서 넣기

포트 443 열기

포트 사용중인거 확인하기 443

 

SSL 서버에 적용하기 메뉴얼

 

주요 경로

/usr/local/apache-tomcat-6.0.20

/etc/httpd/conf.d

/etc/httpd/conf

/usr/local/apache/conf/extra

/usr/local/apache/conf

 

순서

1. httpd.conf의 ssl.conf 참조 주석 해제

2. worker 설정

3. ssl.conf 설정

4. 인증서 password 설정

5. 테스트

 

*항상 수정하는 파일의 원본 파일을 백업해 둘 것*

 

 

1. /usr/local/apache/conf/httpd.conf

httpd.conf 파일의 ssl.conf 파일을 참조하도록 주석을 해제해야함.

해당 파일을 찾다보면 위와 같은 라인의 주석을 해제하자 (없으면 주석해제한 코드를 추가)

#Include conf/extra/httpd-ssl.conf

 

 

2. 톰캣과 아파치의 연동이 되고 worker 설정이 아래와 같다고 가정하에...

worker.list=worker1

worker.worker1.port=8009

worker.worker1.host=localhost

worker.worker1.type=ajp13

#worker.worker1.lbfactor=11

자세한 내용은 아래 링크 참조

http://kkamagistory.tistory.com/37

 

 

3. ssl.conf 설정

LoadModule ssl_module modules/mod_ssl.so

NameVirtualHost *:443

Listen 443

 

AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl    .crl

#SSLPassPhraseDialog  builtin

SSLPassPhraseDialog exec:/usr/local/apache/test_ssl/passwd.sh

 

SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)

SSLSessionCacheTimeout  300

 

SSLMutex default

SSLRandomSeed startup file:/dev/urandom  512

SSLRandomSeed connect builtin

SSLCryptoDevice builtin

 

## SSL Virtual Host Context

 

<VirtualHost *:443>

ServerAdmin root@localhost

ServerName www.test.or.kr

#ServerAlias www.test.or.kr

DocumentRoot /home/test/webapps/ROOT

ErrorLog    /var/log/httpd/ssl-test.or.kr-error_log

TransferLog /var/log/httpd/ssl-test.or.kr_access_log

 

JkMount /* worker1

JkMount /*.article worker1

JkMount /*.do worker1

JkMount /servlet/* worker1

JkMount /*.jsp worker1

 

LogLevel error

SSLEngine on

SSLProtocol all -SSLv2

 

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

 

SSLCertificateFile /usr/local/apache/test_ssl/www_ggtest_or_kr_cert.pem

 

SSLCertificateKeyFile /usr/local/apache/test_ssl/www.ggtest.or.kr.key

SSLCertificateChainFile /usr/local/apache/test_ssl/ChainCA1.crt

SSLCACertificateFile /usr/local/apache/test_ssl/RootCA.crt

 

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

    SSLOptions +StdEnvVars

</Files>

 

SetEnvIf User-Agent ".*MSIE.*" \

 nokeepalive ssl-unclean-shutdown \

 downgrade-1.0 force-response-1.0

 

CustomLog logs/gg.or.kr_ssl_request_log \

  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

 

</VirtualHost>

 

 

*확인사항*

JkMount뒤의 텍스트에는 워커의 이름이 붙어야한다.

DocumentRoot가 맞는 확인

443포트가 열려있는지 확인

하단의

SSLCertificateFile /usr/local/apache/test_ssl/www_ggtest_or_kr_cert.pem

SSLCertificateKeyFile /usr/local/apache/test_ssl/www.ggtest.or.kr.key

 

SSLCertificateChainFile /usr/local/apache/test_ssl/ChainCA1.crt

SSLCACertificateFile /usr/local/apache/test_ssl/RootCA.crt

는 인증서 파일이 제대로 위치하였는지 확인

 

 

4. 인증서 password 설정

SSLPassPhraseDialog exec:/usr/local/apache/test_ssl/passwd.sh

해당 스크립트는 서버 부팅시 입력해야하는 ssl 인증서의 비밀번호를 자동으로 입력하기 위한 설정이다.

 

passwd.sh를 까보면...

 

echo "test4848"

 

echo 뒤에 비밀번를 넣어주면 된다.

이후 passwd.sh 파일의 권한은 755로 줘야한다.

 

 

5. 테스트를 하기 위해서

182.162.27.29가 작업중인 서버의 주소고 ggtest.or.kr이 목표로 하는 주소라면

hosts 파일을 아래와 같은 방식으로 설정한다

 

182.162.27.29 ggtest.or.kr

182.162.27.29 www.ggtest.or.kr

 

이후 브라우저로 https://www.ggtest.or.kr 에 접속된다면 성공이다.



출처: https://ajh322.tistory.com/53 [IT 잡동사니]

반응형
Comments