태그 Archives: 보안서버

CentOS5 에서 let’s encrypt 설치

일단 설치 법은 크게 다르지는 않지만 몇가지 막히는 부분이 있다.

 

이 다음 git을 통해 letsencrypt를 가져오는 명령어가 그냥 실행하면 되지 않는다.
아마도 git 에서 제공되는 SSL에서 지원하는 suite 가 centos 에 없거나 신뢰할수 있는 CA로 등록되어 있지 않는듯 하다. 때문에 GIT_SSL_NO_VERIFY=true를 하고 진행한다.

일단 설치는 잘 완료되 되었다.

 

이후 발급 시도시 SSL_set_tlsext_host_name 관련 에러가 날것이다.~]# cd /usr/local/letsencrypt

사유는 openssl 버전이 너무 낮기 때문에 발생하는것으로 판단된다.

 

때문에 별도의 수정이 좀 필요하다.

에러 해결은 github 의 antmd님의 댓글에서 발췌 했습니다. ‘ㅅ’a

를 한뒤에 아래 두파일의 의 1239번째줄과 296번째줄을 주석처리한다 ( # 으로.. )
~/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/SSL.py ( 1239줄 )

~/.local/share/letsencrypt/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py ( 296줄 )

 

그다음 다시 발급 시도를 하면 정상 발급이 된다.

 

 

ps. ~/.local의 파일 수정이 잘 안되는 분, 혹은 파일이 없는 경우 아래와 같이 수정된 소스를 다운받아 실행합니다.

 

시놀로지 나스에 Let’s encrypt 인증서 설치하기

20160324_PicPick_210642

우아아앙 DSM 6.0이 나오면서 시놀로지 나스가 Let’s encrypt 무료 인증서 설치가 된다.

 

 

그렇다 바로 해야지 이런건.. 먼저 내 시놀로지 웹스테이션으로 접속 ㄱㄱ..

20160324_PicPick_210245

제어판을 클릭한다.

 

 

 

20160324_PicPick_210249

제어판 내의 아무 메뉴나 클릭한다.

 

 

20160324_PicPick_210259

왼쪽메뉴의 보안 탭으로 들어가서 상단메뉴의 인증서 메뉴로 이동

 

 

20160324_PicPick_210305

당연히 기존 인증서를 교체를 선택하고 다음을 클릭!

 

 

20160324_PicPick_210404

도메인 이름자신의 시놀로지 DDNS 설정한 값을 넣고 이메일내 메일주소를 넣고 주제 대체이름에 내 도메인의 CNAME을 설정한 도메인을 추가해도된다.
예제)  synology.enteroa.kr 입력 ( 물론 사전에 내도메인에 synology 라는 호스트 추가 를  CNAME 으로 해서 enteroa.synology.me 를 해놓았다는 가정하에..)

 

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

20160324_PicPick_210447

아 망했어요.. 80 port 여기 로직도 마찬가지로 80 포트로 체크하는 더러운….
참고로 자신이 쓰는 ISP(KT,SKT,U+등 초고속 인터넷 회선 회사들.)의 내부 정책에 따라 인바운드 80 포트는 막는 일이 많습니다.

 

아 U+ 계약 기간 얼마나 남았지 ㅠ_ㅡ KT로 바꿔야 80포트가 열리는데….

 

PS. 2017년 2월 16일 추가사항 ( 여전히 본인은 80포트제한으로 못하고 있지만.. )

혹여 80포트가 열려 있으신 분은 인증서를 발급 받은 뒤에 아래와 같은 방법으로 기본 사용 인증서를
synology.com 에서 자신의 도메인 인증서 ( Let’s encrypt ) 로 바꾸면 된다.
기본 말고 자신이 연결한 도메인, webdav 등등역시 let’s encrypt 인증서로 바꿉니다. (윈도우 10 에서 webdav 를 이용한 네트워크 드라이브 연결의 기본값이 https 로 바뀌었기 때문에 중요 합니다.)


 

이후에 아래 와 같이 HTTPS 관련 옵션을 모두 활성화 하고 웹서버가 재시작 하면 빠른 속도로 웹스테이션을 사용할 수 있다.

잘 설정된 HTTPS 는 일반 HTTP 보다 빠르다 ‘ㅅ’a

Let’s encrypt 설치 및 운용(CentOS)

Mozila 재단에서 진행하는 무료SSL 인증서 발급 프로젝트 이다. ( https://letsencrypt.org )
90일 단위로 갱신을 해야 하는 단점이 있지만 이부분은 cron 등록으로 극복이 가능 하다.
무엇보다 무료라는 강점이 있기 때문에 많이 사용될 가능성이 크다.

 

SSL을 도입할경우 스니핑등을 예방할수 있으며 국내법적으로는 회원의 개인정보를 수집하는 사이트의 경우SSL을 도입해야 한다.

여기서 설명하는 내용은 CentOS 6.x 와 이미 APM이 구축된 서버에서 진행 하였습니다.

 

1. 설치 ( ISU 레포지트리 배포처 https://ius.io/GettingStarted )

설치는 그냥 필수 라이브러리를 설치하고 git을 통해 실행 스크립트를 가져오는 수준이다.

 

 

2. 실행(일반 사용법)

웹서버 운용시 일반적으로 gcc 에 보안설정을 해서 제공을 하게 되는데 일반적으로 퍼미션 700 과
chattr +i 를 해놓는다.
gcc , c++ 명령어에 보안설정을 하지 않았다면 2번째줄만 실행하면 되겠다.

 

 

3. 단축 명령어(인증서 발급)

4~5번재줄이 수정해야 하는 부분 이다.
-d 도메인  –email 이메일주소  –webroot w /경로/ 를 자신의 서버에 맞게 수정하여 실행한다.
일반적으로 -d enteroa.kr -d www.enteroa.kr -d wp.enteroa.kr과 같이 명령해야 한다.
www.도메인.com 을 빼먹는 짓을 하지 말자 ‘ㅅ’a

 

4. 아파치 설정.

SSLProtocol, SSLCipherSuite, SSLHonorCipherOrder 설정은 그냥 같이 올렸다.
https://www.ssllabs.com/ssltest 에서 테스트를 할경우 A+를 받을 수 있는 설정임.
20160314_PicPick_094231

설정 완료 후 브라우져를 통한 사이트 접속을 해서 https 가 적용되었는지 확인한다.

20160312_PicPick_154707녹색 열쇠가 뜨지 않고 아래와 같이 일부가 안전하지 않다고 뜬다면.
기존에 구성된 홈페이지의 소스상 https 가 아닌 http 선언이 있기 때문이다.(대부분 이미지 혹은 외부링크)
20160315_PicPick_160433
아래처럼 이걸 소스에서 찾아서 일일이 수정해주는 방법이 있겠다 =3=a

 

 

5. 갱신

gcc 와 c++ 명령어 보안설정 때문에 스크립트를 운용한다.
일반적으로는 /usr/local/letsencrypt/letsencrypt-auto renew –quite 으로도 충분.
자체적으로 만료일이 도래하지 않은 도메인은 갱신을 건너뛰기 때문에 매일 돌리면 된다.

 

6. 이용 제한( rate limit )
아무래도 무료SSL의 무분별한 사용을 막기 위한 설정이라고 보면 되겠다.

  1.  1개의 IP 에서 3시간동안 10개의 도메인을 허용한다.
  2.  7일 동안 1개의 도메인에서 5개의 도메인레코드 선언을 허용합니다.
    (enteroa.kr / www.enteroa.kr / mail.enteroa.kr / blog.enteroa.kr / etc… )

이 rate limit 는 발급받은 SSL 을 revoke(취소) 하거나 /etc/letsencrypt/ 에 생성된 항목을 삭제하더라도 반환되지 않습니다.

 

7. 인증서에 도메인 추가.
예를 들어 wp.enteroa.kr 만 등록한 도메인이 있을경우
인증서등록을 기존 도메인명을 처음부분에 선언하여 레코드(DNS)를 추가할 수 있다.

위 명령어로 진행시 기존 인증서에 도메인을 추가(EXPAND)할껀지 물어보는데 enter를 눌러서 진행하면 된다.

 

자세한 사용법(물론영어)은  http://letsencrypt.readthedocs.org/en/latest/using.html

wordpress 커스텀 port로 보안서버 적용.

wordpress 의 경우 https 프로토콜을 지원한다.
다만 기본포트인 443 포트만 지원하고 있다.

 

웹호스팅을 쓸때는 꽁수 ‘ㅅ’a 로 커스텀 포트를 적용하는 법이 필요하다.
먼저 wp-config.php 에 아래와 같이 define 을 설정한다.
/* That’s all, stop editing! Happy blogging. */ 위에 설정해야 한다.

 

.htaccess 파일에서 아래와 같이 추가를 해준다.

HSTS 를 설정했기 때문에 구형 브라우져를 사용해서는 접속이 되지 않겠다. 장점으로는 SSL 적용으로 굼떠진 사이트 속도가 빨라진다.
Strict Transport Security (HSTS) 설정을 하면 보안서버가 만료되거나 제거 되었을때 설정된 max-age 까지 클라이언트의 캐쉬가 비워지지 않을경우 접속 되지 않을 수 있으니 주의가 필요하다.
HSTS는 브라우져에 향후 이 사이트에 대한 접속에 일반 http를 사용하지 않겠다는 선언이다.

 

아파치의 SSL 프로토콜 및 칩퍼는 아래와 같이 설정 하였다.
(ps. 2016-03-11 추가 SSLHonorCipherOrder on: 이설정은 보안 등급이 높은 방식을 우선시 사용한다는 설정이다.)

 

https://www.ssllabs.com/ssltest/index.html 에서의 테스트 스코어는 A+ 이며 IE6/XP 조합을 지원하지 못하는 설정이다.

20160314_PicPick_094231IE6/XP 를 지원하기 위해서는 프로토콜 SSLv3만 허용 처리, 그리고 HSTS를 꺼줘야 한다. 다만 등급은 C 로 떨어진다.