리눅스 개인서명(사설) SSL 인증서 생성


1. 개요
개인 인증서를 만들고 인증서를 발급 받아 사용해본다. 브라우저에서  신뢰할 수 없는 사이트로 표시되지만, SSL 보안 기능을 사용할 수 있다.


2. 확인
리눅스 서버에 Openssl 패키지를 설치한다.
[root@localhost ~]# rpm -qa | grep openssl 
openssl-libs-1.0.1e-60.el7_3.1.x86_64 
openssl-1.0.1e-60.el7_3.1.x86_64 
openssl098e-0.9.8e-29.el7.centos.3.x86_64 
openssl-devel-1.0.1e-60.el7_3.1.x86_64 



3. 개인키 생성
[root@localhost ~]# openssl genrsa -des3 -out server.key 2048 
Generating RSA private key, 2048 bit long modulus 
.....+++ 
.......................................................................................................................+++ 
e is 65537 (0x10001) 
Enter pass phrase for server.key: 
Verifying - Enter pass phrase for server.key: 
[root@localhost ~]#


4. 인증요청서 생성
[root@localhost ~]# openssl req -new -key server.key -out server.csr 
Enter pass phrase for server.key:                  ---->  서버 개인키  패스워드 입력
You are about to be asked to enter information that will be incorporated 
into your certificate request. 
What you are about to enter is what is called a Distinguished Name or a DN. 
There are quite a few fields but you can leave some blank 
For some fields there will be a default value, 
If you enter '.', the field will be left blank. 
----- 
Country Name (2 letter code) [XX]:kr 
State or Province Name (full name) []:daejeon 
Locality Name (eg, city) [Default City]:seogu    
Organization Name (eg, company) [Default Company Ltd]:colt357 
Organizational Unit Name (eg, section) []:colt357 
Common Name (eg, your name or your server's hostname) []:web1.com 
Email Address []:admin@web1.com 
  --------->   적당히  자신의 경우게 맞게 입력

Please enter the following 'extra' attributes 
to be sent with your certificate request 
A challenge password []:
An optional company name []:

---------->  그냥 Enter, Enter

서버 인증요청서인 server.csr 파일이 생성되었다.


5. (Optional) 개인키에서 패스워드 제거
- 키에 패스워드가 들어 있으면 아파치 구동시마다 물어본다. 패스워드를 제거하더라도 SSL 암호화 통신 에는 문제가 없으므로 제거하자.

[root@localhost ~]# cp server.key  server.key.origin 
[root@localhost ~]# ls 
anaconda-ks.cfg  server.csr  server.key  server.key.origin 
[root@localhost ~]# openssl rsa -in server.key.origin -out server.key 
Enter pass phrase for server.key.origin:             ---->   개인키 패스워드를 입력
writing RSA key                   -----> 패스워드가 제거된 개인키  파일 server.key 가 생성된다.
[root@localhost ~]# 

 
패스워드가 제거된 파일(server.key)은 원래 파일(server.key.origin)에 비해 용량이 조금 줄었다.


6.  인증서 생성
- 개인키와 인증요청서를 가지고 인증서를 생성해 보자.

[root@localhost ~]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 
Signature ok 
subject=/C=kr/ST=daejeon/L=seogu/O=colt357/OU=colt357/CN=web1.com/emailAddress=admin@web1.com 
Getting Private key 
[root@localhost ~]#
 


7. 확인
- 개인키
[root@localhost ~]# head -3 server.key 
-----BEGIN RSA PRIVATE KEY----- 
MIIEowIBAAKCAQEAyyIIj70AxbZmWKeL7vTg0cDouD8U+Fxt5046YFYh6bUXbev0 
tILTBRZBeGJzeL1GJ2NB1nkPQ4uaIPGCghhD/4ttvKFbH09quPLWFZ44Pth0kCwN 


- 사설인증서
[root@localhost ~]# head -3 server.crt 
-----BEGIN CERTIFICATE----- 
MIIDiDCCAnACCQDyRS6tuMObrDANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMC 
a3IxEDAOBgNVBAgMB2RhZWplb24xDjAMBgNVBAcMBXNlb2d1MRAwDgYDVQQKDAdj 
[root@localhost ~]# 



+ Recent posts