본문 바로가기
개발 및 운영

JCE Provider 개발하기 - JCE Code Signing 인증서 요청

by Joseph.Lee 2019. 8. 7.

JCE Provider를 개발 및 배포하려면 Oracle으로부터 발급받은 JCE Code Signing Certificate를 통해 클래스들을 서명해야 합니다.

그렇지 않으면 디버깅조차 되지 않습니다.

Exception in thread "main" java.lang.SecurityException: JCE cannot authenticate the provider CustomProvider
	at javax.crypto.Cipher.getInstance(Cipher.java:656)
	at MyTestMain.main(MyTestMain.java:16)
Caused by: java.lang.SecurityException: Cannot verify jar:file:/....

위와 같은 오류를 보게 됩니다..

 

JCE Code Signing Certificate를 발급받는 과정은 아래와 같습니다.

 

참고 : https://www.oracle.com/technetwork/java/javase/tech/getcodesigningcertificate-361306.html

 

Get A JCE Code-Signing Certificate

Obtain a JCE Code Signing Certificate JCE Code Signing Certification Authority IMPORTANT NOTE: Oracle does not issue general code-signing certificates for applet or Web Start deployment. The process described here is only for obtaining certificates for use

www.oracle.com

https://docs.oracle.com/javase/10/security/howtoimplaprovider.htm

 

How to Implement a Provider in the Java Cryptography Architecture

An algorithm parameter specification is a transparent representation of the sets of parameters used with an algorithm. A transparent representation of parameters means that you can access each value individually, through one of the get methods defined in t

docs.oracle.com

(아래 내용은 Oracle사의 사정에 따라 변할 수 있으니 위 링크를 보시고, 아래 내용은 방법만 참고해 주시기 바랍니다~)

 

1. jce-cert-request_ww_grp@oracle.com 이 주소로 제목을 정확히 Request a Certificate for Signing a JCE Provider 이라고 써서 메일을 보내야 합니다.

메일에 작성해야 하는 내용은 아래와 같습니다.

 

Include the following contact information in the body of your message:

  • Company Name
  • Street Address (Not a post office box)
  • City
  • State/Province
  • Country
  • Company Telephone Number
  • Company Fax Number
  • Requester Name
  • Requester Telephone Number
  • Requester Email Address
  • Brief description of your company (size, line of business, etc.)
  • Purpose of Requested JCE Code Signing Certificate (for example: "Signing JCE providers containing Ciphers/Mac/KeyAgreement implementations")

그리고 PEM형식으로 인코딩된 CSR을 메일에 첨부파일로 첨부합니다.

CSR(인증서요청파일)을 만드는 방법은 두번째 링크에 있습니다. 아래와 같은 명령으로 생성 가능합니다.

keytool -genkeypair -alias <alias> \
        -keyalg RSA -keysize 2048 \
        -dname "cn=<Company Name>, \
        ou=Java Software Code Signing, \
        o=Oracle Corporation" \
        -keystore <keystore file name> \  
        -storepass <keystore password>

설명에는 10일 정도 걸리는걸 생각하라고 써있는데.. 메일을 보냈더니 저는 5 Business day 가 걸렸습니다.

 

그런데 여기서 끝이 아닙니다...ㅋ

 

몇일 후에 Confirmation of JCE Code Signing Certificate Request 라는 메일이 오는데 거의 물어봤던 내용을 다시 물어봅니다.

이 메일에 CSR request number 라는것이 발급되고 pdf파일 링크하나를 줍니다.

그럼 해당 파일을 인쇄하셔서 CSR request number와 몇가지 정보를 작성하고 (https://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/402171.txt)  (https://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/402171.txt) 자필 서명해서 스캔해서 다시 이메일(exporteccn_ww@oracle.com) 혹은 FAX으로 보내면 됩니다.

 

그런데 저는 여기서 엄청 오래걸렸습니다.. 10 Business day 가 넘어도 답장이 없길래...

 

Confirmation of JCE Code Signing Certificate Request 를 보내준 사람에게 질문했는데 해당 메일을 자기한테 CC(참조)걸어서 다시 보내보라고 해서 그렇게 했더니 3일 후에 발급된 인증서를 받아 볼 수 있었습니다.

 

암튼... 거의 3주 좀 안되는 시간만에 발급받았네요...ㅠㅠ

 

JCE 인증서 요청하시는 분은 미리.. 두번째 메일은 exporteccn_ww@oracle.com와 함께 첫번째 답장한 사람을 CC로 걸어서 보내보세요..

 

그리고 여유로움과 인내를...ㅋㅋ

 

반응형

댓글