티스토리 뷰

서버환경 : 리눅스 CentOS 6.9

이 글은 우선 아파치와 mod_jk, openssl 그리고 톰캣이 설치되어 있고 웹환경이 다 구현되어 있다는 전제로 설정하는 부분만 적는다.

서버에 Let'sEncrpyt도 마찬가지로 설치되어 있어야 한다.


Let'sEncrpyt 디렉토리로 이동..

RPM방식으로 설치하니 두 가지 경로가 나온다.

[root@host ~]# whereis letsencrypt
letsencrypt: /etc/letsencrypt /usr/local/letsencrypt


인증서를 생성하는 명령어가 위치하는 곳은 /usr/local/letsencrypt이다 <--이곳으로 이동한다.



톰캣에 SSL을 쓰려면 최종적으로 jks라는 확장자명을 가진 인증파일을 생성해야 한다.

그러기 위해서는 우선 pem확장자 파일을 생성하고, 다시 pkcs12확장자 파일을 생성해서 최종적으로 키스토어(jks)파일을 만들어야 한다.



Let'sEncrpyt경로에 letsencrypt-auto라는 명령파일이 존재한다. 이 명령어로 pem파일을 만들 수 있다.

아래는 pem파일을 만드는 명령이다.

이메일에는 인증 이메일 아무거나 입력하면 되고

-d 옵션으로 SSL을 적용할 도메인을 추가할 수 있다.

(아래 명령을 실행하기 위해서는 httpd 웹서비스를 stop해야 한다.)

**추가**

80포트 443포트가 점유되어 있지 않아야한다. 내 경우에는 80포트를 9090포트에 방화벽에서 포워딩 해주고 있었기 때문에 이를 제거하기 위해 방화벽을 재시작(이렇게 하면 포워딩이 풀림) 해주어서야 문제가 해결되었다...이틀이나 걸려버렸다...80포트나 443포트를 점유하고 있다면 pem파일 생성시 아래와 같은 에러와 직면하게 된다.

   Domain: sub.blahblah1234.kr

   Type:   unauthorized

   Detail: Invalid response from

   http://sub.blahblah1234.kr/.well-known/acme-challenge/d2r7MwlmQiqH0dKgDYzBVXtqWvTxlZ2wju7t8hZBqOc: 


./letsencrypt-auto certonly --standalone --email 이메일 -d 도메인1 -d 도메인2

이렇게 pem파일이 만들어지면 해당 경로에 pem파일이 보일 것이다.

/etc/letsencrypt/live/도메인/

위 경로로 이동한다.



이제 pkcs12파일을 만들어야 한다. openssl을 사용해서 만든다.

openssl pkcs12 -export -in cert.pem -inkey privkey.pem -out cert.p12 -name root

pkcs12파일도 만들어 졌다.

마지막으로 jsk키스토어 파일을 만들면 된다.

keytool -importkeystore -srcstorepass [jks암호] -destkeystore 키스토어명.jks -srckeystore cert.p12 -srcstoretype PKCS12 -storepass [PKCS12암호] 



그리고 톰캣의 server.xml Connector엘리먼트 설정을 해준다.

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" URIEncoding="UTF-8" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="파일경로/이름.jks" keystorePass="키스토어암호" keyPass="pkcs12암호"/>




<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

이 구문을 주석처리 해줘야 할 때가 있다. 그러므로 당장하지 말고 설정 후 에러가 나면 주석처리를 해본다.






마지막으로 접속해본다.

https://도메인:8443

Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday