keytool.exe -genkey -alias juheon -keyalg RSA -keypass 1234qwer -storepass 1234qwer -keystore juheon.jks keytool.exe -export -alias juheon -storepass 1234qwer -file juheon.cer -keystore juheon.jks keytool.exe -importkeystore -srckeystore juheon.jks -destkeystore juheon.key.p12 -deststoretype PKCS12 D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert D:\Java\32bit\jdk1.5.0_22\bin\keytool.exe -import -alias tsasample -keystore D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert -file D:\workspace\Servers\tsa-server-web-config\tomcat.cer keytool -import -alias somansa -keystore C:\Program Files\Java\jdk1.8.0_102\jre\lib\security\cacert -file c:\somansa.cer #인증서 생성 keytool -genkey -alias keyAlias -keyalg RSA -keypass changeit -storepass changeit –validity 9999 -keystore keystore.jks keytool -export -alias keyAlias -storepass changeit -file server.cer -keystore keystore.jks keytool -import -v -trustcacerts -alias keyAlias -file server.cer ...
확장자는 그 파일의 특성이 무엇인지 쉽게 알아 보기 위해서 붙이는 것이지만, 바이너리 이진 파일에 .txt 확장자를 붙일수도 있는 것처럼 말그대로 이름일 뿐이다. 그래서 확장자 보다는 해당 파일의 실제 형식을 확인하는 것이 중요하다.
.pem
PEM (Privacy Enhanced Mail)은 Base64 인코딩된 ASCII 텍스트 이다. 파일 구분 확장자로 .pem 을 주로 사용한다. 노트패드에서 열기/수정도 가능하다. 개인키, 서버인증서, 루트인증서, 체인인증서 및 SSL 발급 요청시 생성하는 CSR 등에 사용되는 포맷이며, 가장 광범위하고 거의 99% 대부분의 시스템에 호환되는 산업 표준 포맷이다. (대부분 텍스트 파일)
.crt
거의 대부분 PEM 포맷이며, 주로 유닉스/리눅스 기반 시스템에서 인증서 파일임을 구분하기 위해서 사용되는 확장자 이다. 다른 확장자로 .cer 도 사용된다. 파일을 노트패드 등으로 바로 열어 보면 PEM 포맷인지 바이너리 포맷인지 알수 있지만 99% 는 Base64 PEM 포맷이라고 봐도 무방하다. (대부분 텍스트 파일)
.cer
거의 대부분 PEM 포맷이며, 주로 Windows 기반에서 인증서 파일임을 구분하기 위해서 사용되는 확장자 이다. crt 확장자와 거의 동일한 의미이며, cer 이나 crt 확장자 모두 윈도우에서는 기본 인식되는 확장자이다. 저장할때 어떤 포맷으로 했는지에 따라 다르며, 이름 붙이기 나름이다.
.csr
Certificate Signing Request 의 약자이며 거의 대부분 PEM 포맷이다. SSL 발급 신청을 위해서 본 파일 내용을 인증기관 CA 에 제출하는 요청서 파일임을 구분하기 위해서 붙이는 확장자 이다. (대부분 텍스트 파일)
.der
Distinguished Encoding Representation (DER) 의 약자이며, 바이너리 포맷이다. 노트패드등으로 열어 봐서는 알아 볼수 없다. 바이너리 인코딩 포맷을 읽을수 있는 인증서 라이브러리를 통해서만 내용 확인이 가능하다. 사설 또는 금융등 특수 분야 및 아주 오래된 구형 시스템을 제외하고는, 최근 웹서버 SSL 작동 시스템 에서는 흔히 사용되는 포맷은 아니다. (바이너리 이진 파일)
.pfx / .p12
PKCS#12 바이너리 포맷이며, Personal Information Exchange Format 를 의미한다. 주로 Windows IIS 기반에서 인증서 적용/이동시 활용된다. 주요 장점으로는 개인키,서버인증서,루트인증서,체인인증서를 모두 담을수 있어서 SSL 인증서 적용이나 또는 이전시 상당히 유용하고 편리하다. Tomcat 등 요즘에는 pfx 설정을 지원하는 서버가 많아지고 있다. (바이너리 이진 파일)
.key
주로 openssl 및 java 에서 개인키 파일임을 구분하기 위해서 사용되는 확장자이다. PEM 포맷일수도 있고 DER 바이너리 포맷일수도 있으며, 파일을 열어봐야 어떤 포맷인지 알수가 있다. 저장할때 어떤 포맷으로 했는지에 따라 다르며, 확장자는 이름 붙이기 나름이다.
.jks
Java Key Store 의 약자이며, Java 기반의 독자 인증서 바이너리 포맷이다. pfx 와 마찮가지로 개인키,서버인증서,루트인증서,체인인증서를 모두 담을수 있어서 SSL 인증서 파일 관리시 유용하다. Tomcat 에서 SSL 적용시 가장 많이 사용되는 포맷이다. (바이너리 이진 파일)
- PKCS #1은 RSA 공개키 암호알고리즘을 사용하는 암호화 및 서명에 대한 메커니즘을 정의한다.
- PKCS #3는 Diffie-Hellman 키분배 프로토콜을 정의한다.
- PKCS #5는 한 패스워드로부터 유도된 비밀키로 문자열을 암호화하는데 대한 방법을 설명한다.
- PKCS #6은 확장 인증서에 대한 포맷을 설명한다. 확장 인증서는 인증서의 발행인에 의해 서명된 속성의 집합을 가지는 X.509 인증서로 구성된다. X.509의 버전 3에 발맞추어 단계적으로 없어지고 있다.
- PKCS #7은 전자서명과 암호화와 같은 향상된 암호기술을 포함하는 메시지에 대한 일반적인 구문을 정의한다.
- PKCS #8은 비밀키 정보에 대한 포맷을 설명한다. 이러한 정보는 어떤 공개키 알고리즘에 대한 비밀키와 선택적으로 속성의 집합들도 포함한다.
- PKCS #9는 다른 PKCS 표준에서 사용되는 선택된 속성 형태를 정의한다.
- PKCS #10은 인증서 요구에 대한 구문을 설명한다.
- PKCS #11은 스마트 카드와 PCMCIA카드 같은 암호장비에 대한 Cryptoki라 부르는 기술 기반 프로그래밍 인터페이스를 정의한다.
댓글
댓글 쓰기