Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

Code Block
$ openssl version


OpenSSL 1.0.2o  27 Mar 2018

X509Certificate 인증서


인증서 정보 보기

PEM 인코딩된 인증서를 파싱해서 정보를  출력

Code Block
openssl x509 -text -noout -in localhost.crt  

DER 인코딩일 경우  -inform der  옵션 추가openssl 로 x509 인증서 파싱( certificate parsing )하기 참고


개인키(PrivateKey)

RSA 2048 키 생성 및 개인키를 AES256 으로  암호화

  • 암호( pass phrase)는 asdfasdf 이며 입력창을 띄우지 않고 커맨드에서 바로 설정( -passout 옵션)
Code Block
openssl x509genrsa -informaes256 der -text-passout pass:asdfasdf -nooutout aes-in localhostpri.crtpem 

인코딩 변환

DER 인코딩된 인증서를 PEM 으로 변경

2048


위에서 생성한 개인키 복호화하여 RSA Private Key 추출

Code Block
openssl x509rsa -informoutform der -outformin aes-pri.pem -out mycert.pempassin pass:asdfasdf -inout mycertaes-pri.der

개인키(PrivateKey)

RSA 2048 키 생성 및 개인키를 AES256 으로  암호화

...

key

pass phrase 와 암호화 알고리즘 변경

  • 알고리즘:  Triple DES → AES256
  •  Pass phrase : asdfasdf -> new-password
Code Block
openssl genrsarsa -aes256 -in aes-pri.pem -passin pass:asdfasdf  -passout pass:asdfasdfnew-password  -out aes-pri.pem 2048

위에서 생성한 개인키 복호화하여 RSA Private Key 추출

Code Block
openssl rsa -outform der -in aes-pri.pem -passin pass:asdfasdf -out aes-pri.key

pass phrase 와 암호화 알고리즘 변경

  • 알고리즘:  Triple DES → AES256
  •  Pass phrase : asdfasdf -> new-password
Code Block
openssl rsa -aes256 -in aes-pri.pem -passin pass:asdfasdf  -passout pass:new-password  -out aes-pri.key

개인키(PrivateKey) pass phrase 해독

개인키(보통 RSA 방식)의 pass phrase 가 있을 경우 웹 서버 재구동시마다 개인키 암호를 입력해야 하므로 자동화가 안되고 문제가 생길때 대응이 어렵게 됩니다.

pass phrase 가 걸린 원본 파일(localhost.key) 은 다음 명령어로 해독 가능합니다. (원본 파일 복사 권장합니다.)

Code Block
titlepassphrase 해독
cp /etc/pki/tls/private/localhost.key /etc/pki/tls/private/localhost.com.key.enc
openssl rsa -in  /etc/pki/tls/private/localhost.key.enc -out  /etc/pki/tls/private/localhost.key

...

개인키에 pass phrase 가 걸려 있는지 여부는 에디터로 열어서 다음과 같이 항목이 있는지 확인해 보면 됩니다.

Panel

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,9BF3ACA724D1187B19BDDB1585687E8A

  • Proc-Type: 개인키가 암호화 되었음을 나타냅니다.
  • DEK-Info: 암호화 알고리즘을 표시하며 AES 방식의 256 bit key 를 사용하며 CBC 운영 모드를 사용합니다.

만약 명령행에서 바로 개인키 해독 암호를 입력할 경우 -passin pass:mypwd 구문을 사용합니다.(mypwd 가 개인키 해독 암호입니다.)

Code Block
titlepassphrase 해독 및 알고리즘 변경
openssl rsa -in localhost.key.enc -passin pass:mypwd -out rsa-pri.key

정상적으로 해독이 끝났다면 개인키 파일은 다음과 같이 -----BEGIN RSA PRIVATE KEY----- 로 시작되며  Proc-Type 과 DEK-Info 가 없는 것을 확인할 수 있습니다.

Panel

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAtHyN+f/vS6mb

...

key



개인키(PrivateKey) pass phrase

...

암호화되지 않은 개인키에 AES128 로 pass phrase 설정

Code Block
openssl rsa -aes128 -in privkey.pem  -out enc-privkey.pem

암호화되지 않은 개인키에 Triple DES로 pass phrase 설정

...

해독

OpenSSL 로 개인 키(Private Key) 비밀 구절(Pass Phrase) 해독 및 암호화 참고하세요.

개인키(PrivateKey) pass phrase 설정

OpenSSL 로 개인 키(Private Key) 비밀 구절(Pass Phrase) 해독 및 암호화 참고하세요.


pkcs#8 방식의 개인키 해독

Private-Key Information Syntax Specification 방식으로 암호화된 RSA PrivateKey 를 해독하려면 아래 명령을 사용합니다.

...

Code Block
openssl pkcs12 -in file.p12 -nocerts -out file.key


PKCS#12 내 개인키에 pass phrase 를 적용하지 않고 파일로 저장

Code Block
openssl pkcs12 -in file.p12 -out file.pem -nodes

...