[Apache SSL] Ubuntu 인증서(전자서명)

인증서(전자서명)

인증 기관(CA)에서 발행한 전자서명을 이용하려면 금전과 도메인에 대한 제약이 있다. 무료료 하나의 도메인에 대하여 1년간의 전자서명을 발행하는 startssl이 있다.

자가서명인증(openssl 이용)을 하면 경고메세지는 뜨나 무료로 사용가능하다(기능적으로는 같으나 CA기관이 인증하질 않아 브라우저에서는 경고를 출력).


 

자가서명 인증서 만들기

우분투 12.04에 자동설치되어 있으나 없다면 설치

BASH
sudo apt-get install openssl

CA 인증서 생성 (CA- 서버의 개인키 생성)

자가서명이므로 자신이 인증기관임

BASH
openssl genrsa -des3 -out server.key 2048

서버 인증서 발급을 위한 요청 파일인 CSR(Certificate Sinning Request - 인증서 서명 요청)를 생성

BASH
openssl req -new -days 365 -key server.key -out server.csr

편의를 위해 개인키 암호 제거

BASH
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

자가 서명 인증서를 생성

서버 개인키와 CSR을 사용해서 인증서에 서명

BASH
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

인증서 인코딩 포멧 변경

openssl 이 생성하는 인증서의 인코딩은 발급 시 옵션을 주지 않으면 디폴트가 PEM (base64 encoding)이다. Java 등에서 사용하기 위한 DER 포맷(바이너리)으로 변경은 다음과 같이 수행한다.

BASH
openssl x509 -in ca.crt -out ca.der -outform DER

인증서 내용 보기

PEM 포맷인 경우

BASH 
openssl x509 -in ca.crt -text 

DER 포맷인 경우

BASH
openssl x509 -in ca.der -inform DER -text

Apache 적용

Apache의 SSL 모듈을 활성화

BASH
sudo a2enmod ssl

Apache 재시작

BASH
sudo service apache2 restart

관리의 편의를 위해 SSL 인증서 디렉토리 생성

BASH
sudo mkdir /etc/apache2/ssl

인증서 파일을 아래와 같이 이동

BASH
/etc/apache2/ssl/server.crt
/etc/apache2/ssl/server.csr
/etc/apache2/ssl/server.key

보안을 위해 디렉토리와 파일의 소유권을 조정

BASH
sudo chown -R root:root /etc/apache2/ssl

파일의 권한 변경

BASH
sudo chmod 600 /etc/apache2/ssl/*.*

디렉토리의 권한 변경

BASH
sudo chmod 700 /etc/apache2/ssl

VirtualHost(가상호스트) 설정

default-ssl 파일을 복사해서 사용할 도메인명으로 변경

BASH
sudo cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/example.com

파일수정

BASH
sudo vi /etc/apache2/sites-available/example.com

  SSLEngine on
  SSLCertificateFile    /etc/apache2/ssl/server.crt
  SSLCertificateKeyFile /etc/apache2/ssl/server.key

사이트 활성화

BASH
sudo a2ensite example.com

Apache 재시작

BASH
sudo service apache2 restart

공유기를 사용한다면 443 포트의 포트포워딩을 확인할 것. 인증서를 만들때 입력하게 되는 FQDN 정보와 실제로 사용할 도메인정보가 다르다면 에러를 발생시킨다.

두번째 링크를 참고하여 설치해보자..
0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
22 [리눅스] Apache Document Root 권한설정 최고관리자 09-04 1,617
21 [리눅스] CentOS Version 확인하기 최고관리자 09-04 1,452
20 [리눅스] MySQL 최초 접속 및 설정 최고관리자 09-03 1,744
19 [리눅스] MySQL 5.7 보안설정 최고관리자 09-03 1,541
18 [리눅스] RDate로 시간 동기화 하기. 최고관리자 09-03 1,467
17 [리눅스] 기본설치 (Apache , PHP , MySql) 최고관리자 09-03 2,018
16 [공부] 프로그래밍 공부 사이트 최고관리자 09-01 1,398
15 [기능] Mobile 메뉴 최고관리자 09-01 1,366
14 [기능] Mega Menu 최고관리자 09-01 1,409
13 [기능] 상단에서 메뉴높이가 높고 아래로 스크롤하면 메뉴높이가 줄어듦 최고관리자 09-01 1,415
12 [기능] 상단에 메뉴가 보이다가 아래로 스크롤하면 메뉴가 사라지고 상단으로 가면 메뉴가 보임. 최고관리자 09-01 1,336
11 [기능] 메뉴가 안 보이다가 아래로 스크롤하면 메뉴가 생김 최고관리자 09-01 1,437
10 [기능] Icon으로 구성된 수직/수평 메뉴 최고관리자 09-01 1,281
9 [JS] 자바스크립트 {...} [...] 문법 (비구조화 할당/구조분해 할당) 최고관리자 09-01 1,292
8 [기능] 상단의 높이가 큰 메뉴상태에서 아래로 스크롤하면 상단에 높이가 낮은 메뉴가 고정됨 최고관리자 09-01 1,295
7 [Font] Naversoftware 폰트 리스트 최고관리자 09-01 1,360
6 [Web Font] 직접입력해서 폰트를 확인할 수 있는 사이트 최고관리자 09-01 1,349
5 [CSS - font] unicode-range 최고관리자 08-31 1,576
4 [UI 참고] Oven - 회원가입 최고관리자 08-31 1,308
3 타자기체 - 가로 세로 비율이 고정되어 있는 글꼴로 표현 최고관리자 08-08 1,399