Let’s encrypt 에서 생성된 pem 인증서를 tomcat에서 사용 하기

Let’s encrypt 의 경우 일반적인 apache / nginx 에서 사용이 가능한 pem 파일을 생성 한다.

 

때문에 tomcat 에서 사용을 하기 위해서는 jks 로의 변환을 해서 org.apache.coyote.http11.Http11NioProtocol 프로토콜로 사용을 하거나

apr 및 tomcat-native 설치 하여 org.apache.coyote.http11.Http11AprProtocol 을 사용할 수 있다.

 

먼저 pem 파일을 jks 로 만드는 스크립트 이다. 중요한 부분은 18~22 줄이다.

이후 server.xml 설정에서 아래와 같이 설정하여 https 를 활성화 할 수 있다.


다른 방법으로 Http11AprProtocol 프로토콜을 사용하여 pem 파일을 jks 로 변환 없이 사용할 수 있다.

또한 apr 프로토콜을 사용할하고 tomcat 8.5 혹은 tomcat 9 의 경우 http/2 를 지원 한다.

활성화 하기 위해서는 tomcat-native 을 설치해야 한다.

server.xml 에서는 아래와 같이 설정 한다.

 

 

취약점 패치 CVE-2017-5715, CVE-2017-5753, CVE-2017-5754

Intel cpu 의 Meltdown,

Intel, AMD, ARM 등 대부분의 cpu 취약점인 Specter 가 발견 되어 운영 중인 모든 컴퓨터 ( PC, 서버, 핸드폰 등등 ) 의 업데이트가 필요 하다.

시스템의 느려짐 ( 특히 I/O 속도 ) 이 발생한다고 하나..

간단한 자바스크립트 정도로 cpu의 시스템 에서 생성한 정보확인이 가능하다고 하니 꼭 진행하는 편이 좋다.

 

  • 서버 ( centos, ubuntu )

리눅스의 경우 커널 업데이트 이기 때문에 커널 업데이트 후에 시스템 재시작이 필요하다.

1.CentOS

2. Ubuntu

2018-01-10_14-35-57

위 스크린샷 화면은 ubuntu 설치할때 업데이트 설정에 따라 나오지 않을수도 있습니다.

 

  • 윈도우

1. 윈도우 10 사용자는 자동 패치 (KB4056892) 가 된다.

2018-01-10_15-48-59

2. 윈도우7 :  http://www.catalog.update.microsoft.com/Search.aspx?q=KB4056897

3. 윈도우8 :  http://www.catalog.update.microsoft.com/Search.aspx?q=KB4056898

 

PS. 아이폰의 경우 IOS 11.2.2 버전이 관련 패치 이며 가급적 패치 진행을 하는것이 좋을듯 ‘ㅅ’a

kernel 의 change log 를 확인하여 패치가 되었는지 확인한다.

Let’s enctypt 를 의 발급/갱신을 단순화 하기 위한 방법

Let’s encrypt 는 발급/갱신을 할때 http://도메인/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxx 를 호출 한뒤 호출에 성공한경우 도메인 소유권이 있는것으로 판단하여 발급/갱신이 이루어 진다.

다만 이경우 .htaccess 를 쓰는 워드프레스 라던가 XE 라던가 혹은 개인 설정에 의해 .htaccess 에서 리다이렉트 운용을 할 경우 발급/갱신이 어려워 질 수 있다.

 

때문에 아래와 같이 apache 의 Alias 설정 해서 좀더 효율적인 인증을 할 수 있다.

 

위 설정을 하고 난뒤에 발급 명령어는 아래와 같다.

webroot를 /var/www/html 에 고정을 하고  6번째 줄만 맞게 수정을 해서 사용하면 됩니다 ‘ㅅ’b

 

/var/www 폴더는 selinux 에서 파일컨텍스트가 허용된 폴더로 selinux 를 사용하더라도 별도의 허용처리를 할 필요가 없어서 좋음 🙂

webtatic 저장소를 이용한 php 7 설치

php 는 httpd 의존이기 때문에 php를 설치하는것만으로 httpd 가 설치 된다.
즉 httpd 먼저 설치하고 php를 설치해야 한다.

webtatic의 php 는 기본적으로 nts 이며 apache 가 prefork mpm 이 아닐 경우(worker, event) zts 모듈이 로딩이 되므로 매우 편리하게 사용할 수 있다.
아울러 yum을 이용한 설치이기 때문에 더 훌륭하다 =3=b

 

레포지트리 설치

 

php7 설치

 

httpd 의 mpm 방식은 아래와 같이 확인한다.

httpd -V 의 값에서 MPM 이 worker 로 확인 되었기 때문에 cron 등에 등록을 하려면 zts-php 명령어를 써야 한다.
worker 방식은 메모리를 적게 쓰지만 다종의 웹솔루션을 운영하기엔 적합하지 않다.
다만 apache 2.4.27 에서 부터 http/2 를 지원하는데 있어서 profork 방식을 더 이상 지원하지 않는다.

 

서버에서 php 명령어 실행은 아래와 같이 한다.

 

httpd를 worker MPM 으로 설치 하고 webtatic 제공의 php 를 설치한 서버에서 오라클 접속을 사용하기 위해 oci8 익스텐션 설치 진행은 아래와 같이 진행 했다.
phpize, config-php 역시 각각 zts-phpize, zts-php-config 의 것을 사용한다.

 

설치된 oci8 은 웹문서에서 phpinfo(); 로 호출하거나 리눅스 쉘에서 아래와 같이 확인이 가능하다.

 

PS. webtatic 에서는 php70w-odbc를 제공 하므로 yum 설치로 odbc를 이용할 수 있다.

openDMARC 설치

기존에 구글에 대량메일을 보내기 위한 opendkim 설치 및 운용 방법을 올렸었다.

DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC는 SPF, DKIM의 검사 결과를 기초로 TXT 레코드의 내용에 따라 메일 발송 차단, 혹은 자신의 메일 도메인을 도용한 스푸핑 메일에 대한 보고 등을 설정할 수 있는 유용한 툴 이다.

 

사용법은 opendkim 보다 쉽지만 일부 설정값이 dkim을 필요로 함으로 dkim 과 dmarc 를 같이 진행하는것이 좋다.

 

설정을 위해서는 도메인이 있어야 하며

사전에 메일 발송서버의 IP 와 DNS A 레코드에 정식등록된 서버명이 필요로 한다.

여기서 설명은 서버아이피 123.123.123.123 의 호스트네임 mail01.enteroa.com 을 기준으로 설명 한다.

 

설치는 CentOS7 에서 진행을 하였습니다.

설치는 끝…

 

설치 완료 후 vi 를 이용하여 /etc/opendmarc.conf  파일을 수정 합니다.

 

sendmail.mc 파일의 하단에 opendmarc 필터를 추가합니다. (:8891 = open dkim) (:8893 = dmarc)

make를 하고 sendmail 을 재시작 합니다.

서버 설정이 끝났습니다.

 

다음은 DNS 설정으로 TXT 레코드 등록을 진행합니다. (서버연결롱 A 레코드 및 _dmarc TXT 레코드 입니다.)

 

시작서비스 등록 및 서비스 시작.

 

아울러 지속적인 운영을 위해 suffix 파일을 주기적으로 업데이트 해야 합니다.

 

구글의 DMARC 메뉴얼 입니다.

https://support.google.com/a/answer/2466563?hl=ko

아래는 dmarc wiki 입니다.

https://dmarc.org/wiki/FAQ#When_can_I_expect_to_receive_my_first_aggregate_report.3F