nginx에서 중간단계 인증서 설정하기

간혹 SSL을 설정할때, 기본키 외에 중간 단계의 키 파일을 포함하는 경우가 있다.

본인 도메인 기준으로 생성된 .crt 파일과 중간 단계의 키 파일이 있다면,

cat 본인도메인.crt 중간단계키.crt >> 완전한키.crt

위 과정을 통해 합쳐진 키를 만든 다음에 nginx 설정의 ssl_certificate 항목에 이 두가지 키가 합쳐진 파일을 로드해주면 된다.

단, 합치는 과정은 꼭 기본키 뒤에 중간단계의 키가 위치하여야만 하고 그렇지 않을 경우 오류가 발생할 수 있다.

pymssql과 SQLAlchemy 사용시 유의할 점.

pymssql을 apt-get install python-pymssql로 설치하는 경우 1.0.2 버젼이 설치가 된다. (2013년 8월 22일 기준) 하지만, 제대로 사용하려면 pip install pymssql로 설치하는 것이 좋다. (2013년 8월 22일 기준 2.0.0b1-dev-20130403 버젼)

pymssql을 pip로 설치하는 경우에는 apt-get install freetds-dev 패키지를 먼저 깔아주어야 오류 없이 정상적으로 설치될 수 있다.

* pymssql 버젼 때문에 발생할 수 있는 문제

  • SQL Server의 Version Info를 가져오는데 실패해서 SQLAlchemy의 mssql 플러그인 중 버젼 체크 로직 부분에서 re.match에 None 타입이 파싱할 대상으로 들어가 Exception 발생.

SSL설치용 인증서 만들기

명령어는 root 계정에서 실행.

- 서버용 key 파일을 생성한다. (참고: key 파일은 2048 bit로 생성)
openssl genrsa -des3 -out server.key 2048

- 서버 key 파일을 이용하여 csr을 생성한다.
openssl req -new -key server.key -out server.csr

- 생성한 csr 파일을 이용하여 SSL 인증서를 발급한다.

- 발급 받은 인증서(.crt) 파일을 웹 서버에서 설정.

jQuery에서 $(document).ready(function(){})와 $(function(){})

jQuery에서 흔히 쓰는 $(document).ready(function() {}); 는 $(function(){ }); 와 같다.

jQuery 공식 Docs에서도 위 2가지 표현 방법은 equivalent 하다고 한다.

성능 최적화를 위한 자바스크립트 경량화를 위해서는 후자의 방식대로 표현해도 좋을 것 같다. (아마 별 차이는 안나겠지만) 하지만, 위 두 함수가 같다는 것을 모르는 사람들에게는 맥락이 부족하여 가독성이 떨어질 수 있으니 유의.

MS의 SPLA 라이선스

MS의 서버용 운영체제를 구매하여 웹 서비스를 하는 경우에는 필수적으로 SPLA라는 서비스 공급자용 라이선스 계약을 체결해야 한다. 해당 라이선스는 영구적 계약 체결이 존재하지 않고, 월정액으로만 체결이 가능.

보통 웹 서버 제품군은 1 CPU당, DB 제품군은 2 Core 당 가격으로 계산한다.
여기서 특징적인 것은, DB 제품군 구매시 선택가능한 라이선스인 WEB 라이선스의 경우는 비즈니스 정보가 담긴 ERP나 그룹웨어 등에 사용 불가능하고, 공개된 웹 페이지 제작을 위해서만 사용해야 한다는 점.

MS의 SPLA 라이선스 소개 페이지: http://www.microsoft.com/ko-kr/licensing/licensing-options/spla-program.aspx http://www.spla.co.kr/spla/spla.aspx

HTTP Accept Header

Chrome 28.0.1500.72 m 버전에서는 웹 페이지 요청시 다음과 같이 Accept 헤더를 보낸다.

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept 헤더는 웹 브라우저가 응답을 받았을 경우에, 어떤 Content-Type 으로 해석을 할 것 인지를 결정하는 내용을 담고 있다.

위 예제의 경우에는 text/html과 application/xhtml+xml 순서대로 해석하며, 응답의 Content-Type과 맞지 않는 경우에는 q 값(기본: 1)에 따라서 높은 우선순위의 Content-Type을 선택하여 해석을 진행한다.

위 예제에서는 응답 Content-Type가 text/html이나 application/xhtml+xml이 아닌 경우에 그 다음 순위로 application/xml로 해석을 하게 된다.

HTTP Accept Header Definition: http://tools.ietf.org/html/rfc2616#section-14.1