2016-06-08 7 views
0

Java 프로젝트가 있고 jks 인증 파일이 있습니다. 하지만 오래된 것입니다. 이제 새로운 pfx 인증 파일을 변경해야합니다. 하지만 내가 어떻게하는지 모르겠다.새로운 pfx cert 파일을 Java 프로젝트의 이전 jks 파일로 변경하는 방법

여기 현재 프로젝트에 대한 정보입니다.

는이 JKS 이전 파일 구성 여기

<profile> 
      <id>sign-base</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-jarsigner-plugin</artifactId> 
         <version>1.2</version> 
         <executions> 
          <execution> 
           <id>sign</id> 
           <goals> 
            <goal>sign</goal> 
           </goals> 
          </execution> 
          <execution> 
           <id>verify</id> 
           <goals> 
            <goal>verify</goal> 
           </goals> 
          </execution> 
         </executions> 
         <configuration> 
          <verbose>true</verbose> 
          <storepass>OldJKSKeystorePass</storepass> 
          <keypass>OldJKSKeyPass</keypass> 
          <arguments> 
           <argument>-tsa</argument> 
           <argument>http://timestamp.globalsign.com/scripts/timestamp.dll</argument> 
          </arguments> 
          <keystore>${pom.parent.basedir}${file.separator}OldJKSFile.jks</keystore> 
          <alias>1</alias> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 

와의 pom.xml이며, 이름은 "SpecialHttpsClient"입니다 기본 httpsClient을 확장하는 자바 클래스가, 그리고 그런 방법이있다. mykeystore 파일은 리소스 패키지 아래에 있으며 그것에 대해 잘 모릅니다.

private SSLSocketFactory newSslSocketFactory() { 
     InputStream in =null; 

     try { 
      KeyStore trusted = KeyStore.getInstance("JKS"); 
      in = this.getClass().getResourceAsStream("/mykeystore"); 
      trusted.load(in, "mykeystorepass".toCharArray()); 

      SSLSocketFactory sf = new SSLSocketFactory(trusted); 
      sf.setHostnameVerifier(sslSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); 

      return sf; 
     } catch (Exception e) { 
      logger.error("An error was occurred while creating SSLSocketFactory!***************", e); 
      return null; 
     } finally { 
      if(in!=null) 
       try { 
        in.close(); 
       } catch (IOException e) { 
        logger.error("An error was occurred while creating SSLSocketFactory!***************", e); 
       } 
     } 
    } 

여기에는 이름이 SpecialHttpsConnection이고 그와 같은 메소드가 있습니다. 나는 문서 파일에 대해 아무것도 모릅니다.

private static TrustManagerFactory getTrustManagerFactory() throws Exception { 

     if(trustManagerFactory==null) { 
      try { 
       KeyStore trusted =null; 
       trusted = KeyStore.getInstance("JKS"); 
       InputStream in = SpecialHttpsConnection.class.getResourceAsStream("/document"); 
       try { 
        trusted.load(in, "[email protected]?wE".toCharArray()); 
       } finally { 
        in.close(); 
       } 

       trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
       trustManagerFactory.init(trusted); 

      } catch(Exception e) { 
       logger.error("An error was occurred while creating TrustManagerFactory!***************",e); 
       throw e; 
      } 

     } 

     return trustManagerFactory; 
    } 

내 문제는 그 것이다. "mynewcert.pfx"파일을 어떻게 변경합니까?

+0

코드를 변경하지 않으려면'keytool'을 사용하여 수동으로 JKS 파일을 PKCS12 파일로 변환해야합니다. –

답변

0
여기

유형

키 도구/사람

열고 cmd를 유용하고 CD에는/JRE/bin/디렉토리 /로 이동 입력 할 수 있습니다, jarsigner를위한 솔루션입니다 - importkeystore -srckeystore "c : \ mypfxfolderdirectory \ mypfxfile.pfx"-srcstoretype PKCS12 -destkeystore "c : \ mypfxfolderdirectory \ myjksfile.jks"-deststoretype JKS -srcstorepass pfxFilePass -deststorepass jksFileStorePass -srcalias 1 -destalias 1 -destkeypass jksFileKeyPass -noprompt

그 후에 jks 파일은 store pass, key pass의 두 가지 암호로 생성됩니다.