일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- duabi
- 서울야경
- 프랑크푸르트 여행
- cloud foundry
- 모리셔스
- mauritius
- 톰캣 서비스 등록
- 트루오비쉬
- postgresql 비밀번호 변경
- 느낌 사진
- openstack
- 모리셔스 여행
- 모리셔스 카셀라
- 모리셔스리조트
- postgresql 비밀번호 초기화
- 모리셔스 카젤라
- 모리셔스여행
- mauritius casela
- 두바이
- bind9
- postgresql 설치
- 두바이여행
- 경주
- 경주 여행
- Trou aux Biches
- 서울 야경
- 독일여행
- r
- Sony A850
- Melbourne 여행
- Today
- Total
I.K.Picture & IT Info.
SSL 테스트를 위한 사설 CA 인증 및 SSL 인증서 발급 본문
실제 SSL 서비스를 위해서는 공인 CA 인증을 받아서 편리(?)하게 작업하면 되지만
테스트를 위해서는 돈주고 받기 애매하죠...
그래서 내 서버 자체가 인증서 기관으로되서 사설 CA 인증 및 SSL 인증서를 발급하는 방법에 대해
제가 수행한 방법을 정리하고자 합니다.
최종 테스트를 위해 apache 웹서버에 ssl 적용까지 해보았습니다.
순서는 총 3단계로 나눠지는데요
1. ROOT CA 인증서 생성
2. SSL 인증서 생성 (ROOT CA 인증서 기반..)
3. Apache 웹 서버 SSL 적용
환경은 CentOS 7 기반으로했어요
1, 2번은 사실 환경 상관없을꺼같구요. 3번 정도가 리눅스 환경에 영향을 받을꺼같습니다.
1. ROOT CA 인증서 생성
1.1 인증서 보관할 폴더 생성
$mkdir ssl |
1.2 개인키 생성
$openssl genrsa -out rootCA.key |
※개인키 생성시 전 패스워드를 입력하지 않기 때문에 옵션을 주지 않았습니다. 비밀번호 필요사 -aes256 옵션 추가
몇 가지 입력해야되는 사항이 있는데 적절하게 작성하시면됩니다.
1.3 CSR(Certificate Signed Request: 인증요청서) 생성
$openssl req -new -key rootCA.key -out rootCA.csr -config /etc/pki/tls/openssl.cnf |
※ 뒤에 -config는 따로 하지 않아도 상관은 없습니다. centos 의 경우엔 저 위치에 기본 설정이 들어가 있어서 한거예요
1.4 자체 서명(self signed) 인증서 생성
$openssl x509 -days 3650 -req -set_serial 01 -in rootCA.csr -signkey rootCA.key -out rootCA.crt -extfile /etc/pki/tls/openssl.cnf -extensions v3_ca |
※ 마찬가지 뒤에 extfile과 extensions 또한 centos의 경우엔 제가 위치를 알아서 넣었지만 다른 운영체제의 경우 삽입 안하셔도 됩니다.
2. SSL 인증서 생성
2.1 개인키 생성
$openssl genrsa -out private.key |
2.2 CSR 생성
$openssl req -new -key private.key -out ssl.csr -config /etc/pki/tls/openssl.cnf |
※ 뒤에 -config는 따로 하지 않아도 상관은 없습니다. centos 의 경우엔 저 위치에 기본 설정이 들어가 있어서 한거예요
2.3 인증서 생성
$cp /etc/pki/tls/openssl.cnf ./openssl.cnf |
※ openssl.cnf 위치가 다른 경우 그냥 새로 만드셔서 적절히 아래 내용을 그대로 작성하시면됩니다.
DNS는 원하는데로 추가하시면됩니다.
[usr_cert] [alt_names] DNS.1 = *.domain.com |
$openssl x509 -req -days 730 -in ssl.csr -CA rootCA.crt -CAcreateserial -CAkey rootCA.key -out server.crt -extfile ./openssl.cnf -extensions usr_cert |
3. 웹 서버 적용
#yum install mod_ssl
--------------아래 내용에 대해 찾은 후 저장된 위치로 변경 SSLCertificateFile ....../ssl.crt SSLCertificateKeyFile ....../private.key (private.pem) SSLCACertificateFile ....../rootCA.crt |
※ private.key를 그대로 사용할 경우 웹 서버 재시작마다 비밀번호를 설정했을 경우 써줘야되므로
openssl rsa -in private.key -out private.pem 으로 생성하여 비밀번호 없앤 후 사용 가능
※ httpd 재시작 시 파일에 대한 permission defined 오류가 보여질 경우 아래 명령어로 권한 변경
Permission denied: Init: Can't open server certificate file ..... |
$chcon unconfined_u:object_r:httpd_config_t:s0 파일명 (총 세개 파일 모두 변경)
이렇게 하면 SSL이 적용된 웹 사이트를 확인할 수 있습니다.
그런데, 사설 인증이기 때문에 기본적으로 확인되지 않은 인증서라고 보여지길 할꺼예요~
이렇게 테스트를 해보고 실제 서비스를 위해서는 공인 CA를 받아야되는데요
무료로 인증서를 받을 수 있는 곳들이 있기 때문에!!!!
해당 부분도 조만간 정리를 해볼 예정입니다.
'Development > Web' 카테고리의 다른 글
[tomcat 설정] 로그 파일 기간별 저장 방법 (0) | 2021.10.06 |
---|---|
[WebSocket] Java Spring에서 WebSocket 데이터 보낼 때 TEXT_PARTIAL_WRITING 오류 (0) | 2020.11.26 |
자바 기반 웹 서비스 수행 시 주소 창 직접 접근 막는 법 (URL 직접 접근 막는법) (2) | 2020.03.19 |
NW.js를 통한 웹 언어로 데스크톱용 어플리케이션 생성 (0) | 2018.12.28 |
[IE 문제] Canvas 내용 파일 저장 (0) | 2018.12.08 |