>

고객 중 한 명이 와일드 카드 SSL 인증서 (* .example.com)를 구매했습니다 GoDaddy에서 CSR 데이터를 제공하지 않고 간단히 다운로드했습니다. 그 zip 파일에는 3 개의 파일이 있습니다. 그것들은 fce4f111a61ea3f4.crt 입니다 gd_bundle-g2-g1.crt  그리고 gdig2.crt.pem .

이것에 관한 많은 기사를 검색했지만 모두가 먼저 서버에서 CSR 데이터를 가져 와서 SSL 인증서를 얻기 위해 GoDaddy에 붙여 넣었습니다.

제 경우에는 GoDaddy에 CSR 데이터를 제공하지 않았습니다. 즉, 키 스토어 파일이 없습니다.

이제 키 저장소없이 인증서를 서버에 설치하려고했습니다. 이를 위해 아래 명령을 성공하지 않고 사용했습니다.

keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file fce4f111a61ea3f4.crt
keytool -import -alias interm -keystore tomcat.keystore -trustcacerts -file gd_bundle-g2-g1.crt
keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file gdig2.crt.pem


  • 답변 # 1

    위의 진술에 따라 키 저장소가 이미 유지 관리되어 있다고 가정합니다. 사고를 피하려면 먼저 키 저장소를 백업하십시오.

    가지고있는 파일 외에 생성 된 인증서의개인 키도 있어야합니다

    이제 주문 된 단계를 따르십시오.

    <올>

    키 저장소 파일에서 기존 항목을 먼저 삭제하십시오.

    keytool -delete -alias tomcat -keystore domain.jks
    
    

    다른 기존 항목을 볼 수도 있습니다 keytool -list -keystore domain.jks  그들도 삭제하십시오.

    이제 인증서와 개인 키를 PKCS12 파일로 내 보냅니다

    openssl pkcs12 -export -in fce4f111a61ea3f4.crt -inkey private.key -out cert_and_key.p12 -name tomcat -CAfile gd_bundle-g2-g1.crt -caname root
    
    

    다음 오류와 유사한 경우

    unable to load private key
    139995851216720:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: ANY PRIVATE KEY
    
    

    그것은 당신의 private.key 를 의미합니다  올바른 형식이 아닌 경우 인코딩을 ASCII text 로 변경해야합니다.  개인 키를 변환하려면 다음 명령을 실행하십시오.

    # You can do a dry run before manipulating the actual file
    tail -c +4 private.key | file -
    # Change encoding
    tail -c +4 private.key > private.key
    
    

    PKCS12 파일을 JKS 키 저장소로 가져 오기 :

    keytool -importkeystore -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -alias tomcat -keystore domain.jks
    
    

    이제 루트 인증서를 JKS 키 저장소로 가져 오기(루트 별명 포함)

    keytool -import -trustcacerts -alias root -file $certdir/gd_bundle-g2-g1.crt -noprompt -keystore domain.jks
    
    

    server.xml 에 다음 추가

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150"
        SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
        keystoreFile="/path/to/keysore/domain.jks" keystorePass="xxxxxx"
        ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
        TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
        TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,
        TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA" />
    
    

    xxxxxx 를 교체하는 것을 잊지 마십시오  JKS 키 저장소 비밀번호 및 keystoreFile  매개 변수

    완료. 이제Tomcat 서버를 다시 시작하고 로그 파일을 듣습니다

    sudo service tomcat7 restart
    sudo tail -f /var/log/tomcat7/catalina.out
    
    

    참고 :교체 domain.jks  실제 키 저장소 파일과 함께.

  • 이전 c# - moqmockexception - mock의 다음 설정이 일치하지 않습니다
  • 다음 JDK8 javatime에 대한 jackson 데이터 유형 모듈이 있습니까?