Cách sử dụng keystore explorer trên windows

Tôi muốn nhập chứng chỉ tự ký vào Java để bất kỳ ứng dụng Java nào cố gắng thiết lập kết nối SSL sẽ tin tưởng chứng chỉ này.

Cho đến nay, tôi đã nhập được vào

keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem

Tuy nhiên, khi tôi cố chạy HTTPSClient.classtôi vẫn nhận được:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: xây dựng đường dẫn PKIX không thành công: sun.security.provider.certpath.SunCertPathBuilderException: không thể tìm thấy đường dẫn chứng nhận hợp lệ đến mục tiêu được yêu cầu

  • java
  • certificate
  • ssl-certificate
  • keystore
  • keytool

118 hữu ích 1 bình luận 233k xem chia sẻ

answer

195

Cách sử dụng keystore explorer trên windows

Trên Windows cách dễ nhất là sử dụng portecle chương trình .

  1. Tải về và cài đặt portecle.
  2. Trước tiên hãy chắc chắn 100% rằng bạn biết JRE hoặc JDK nào đang được sử dụng để chạy chương trình của bạn. Trên Windows 7 64 bit, có thể có khá nhiều JRE. Process Explorer có thể giúp bạn điều này hoặc bạn có thể sử dụng:System.out.println(System.getProperty("java.home"));
  3. Sao chép tệp JAVA_HOME \ lib \ security \ cacerts sang thư mục khác.
  4. Trong Portecle, nhấp vào Tệp> Mở tệp kho khóa
  5. Chọn tập tin cacerts
  6. Nhập mật khẩu này: thay đổi
  7. Nhấp vào Công cụ> Nhập Chứng chỉ tin cậy
  8. Duyệt tìm tập tin mycert ve.pem
  9. Nhấp vào Nhập
  10. Nhấn OK để cảnh báo về đường dẫn tin cậy.
  11. Nhấn OK khi nó hiển thị chi tiết về chứng chỉ.
  12. Nhấp vào Có để chấp nhận chứng chỉ là đáng tin cậy.
  13. Khi nó yêu cầu bí danh, nhấp OK và nhấp OK lần nữa khi thông báo đã nhập chứng chỉ.
  14. Nhấp vào để lưu. Đừng quên điều này hoặc thay đổi bị loại bỏ.
  15. Sao chép các tập tin trở lại nơi bạn tìm thấy nó.

Trên Linux:

Bạn có thể tải xuống chứng chỉ SSL từ một máy chủ web đã sử dụng nó như thế này:

$ echo -n | openssl s_client -connect www.example.com:443 | \
   sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/examplecert.crt

Tùy chọn xác minh thông tin chứng chỉ:

$ openssl x509 -in /tmp/examplecert.crt -text

Nhập chứng chỉ vào kho khóa của Java:

$ keytool -import -trustcacerts -keystore /opt/java/jre/lib/security/cacerts \
   -storepass changeit -noprompt -alias mycert -file /tmp/examplecert.crt

Chỉnh sửa:

Ngày nay, chúng tôi thường không phải thêm chứng chỉ vào kho khóa vì bạn có thể nhận chứng chỉ với giá 5 đô la mỗi năm từ ssls.com . Chỉ trong trường hợp đó là một lựa chọn cho bạn.

195 hữu ích 5 bình luận chia sẻ

answer

32

Cách sử dụng keystore explorer trên windows

Cuối cùng tôi đã viết một tập lệnh nhỏ có thêm chứng chỉ vào các kho khóa, vì vậy nó dễ sử dụng hơn nhiều.

Bạn có thể nhận phiên bản mới nhất từ https://github.com/ssbarnea/keytool-trust

#!/bin/bash
# version 1.0
# https://github.com/ssbarnea/keytool-trust
REMHOST=$1
REMPORT=${2:-443}

KEYSTORE_PASS=changeit
KEYTOOL="sudo keytool"

# /etc/java-6-sun/security/cacerts

for CACERTS in  /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts \
    /usr/lib/jvm/java-7-oracle/jre/lib/security/cacerts \
    "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts" \
    "/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/MacOS/itms/java/lib/security/cacerts"
do

if [ -e "$CACERTS" ]
then
    echo --- Adding certs to $CACERTS

# FYI: the default keystore is located in ~/.keystore

if [ -z "$REMHOST" ]
    then
    echo "ERROR: Please specify the server name to import the certificatin from, eventually followed by the port number, if other than 443."
    exit 1
    fi

set -e

rm -f $REMHOST:$REMPORT.pem

if openssl s_client -connect $REMHOST:$REMPORT 1>/tmp/keytool_stdout 2>/tmp/output dev/null
        then
        :
        else
        cat /tmp/keytool_stdout
        cat /tmp/output
        exit 1
        fi

if sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' tmp/keytool_stdout > /tmp/$REMHOST:$REMPORT.pem
        then
        :
        else
        echo "ERROR: Unable to extract the certificate from $REMHOST:$REMPORT ($?)"
        cat /tmp/output
        fi

if $KEYTOOL -list -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT >/dev/null
    then
    echo "Key of $REMHOST already found, skipping it."
    else
    $KEYTOOL -import -trustcacerts -noprompt -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT -file /tmp/$REMHOST:$REMPORT.pem
    fi

if $KEYTOOL -list -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT -keystore "$CACERTS" >/dev/null
    then
    echo "Key of $REMHOST already found in cacerts, skipping it."
    else
    $KEYTOOL -import -trustcacerts -noprompt -keystore "$CACERTS" -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT -file /tmp/$REMHOST:$REMPORT.pem
    fi

fi

done

`` `

32 hữu ích 0 bình luận chia sẻ

answer

30

Cách sử dụng keystore explorer trên windows

    D:\Java\jdk1.5.0_10\bin\keytool -import -file "D:\Certificates\SDS services\Dev\dev-sdsservices-was8.infavig.com.cer" -keystore "D:\Java\jdk1.5.0_10\jre\lib\security\cacerts" -alias "sds certificate"

30 hữu ích 1 bình luận chia sẻ

answer

10

Cách sử dụng keystore explorer trên windows

Điều này làm việc cho tôi. :)

sudo keytool -importcert -file filename.cer -alias Randomaliasname -keystore $ JAVA_HOME / jre / lib / security / cacerts -storepass changeit 

10 hữu ích 0 bình luận chia sẻ

answer

4

Cách sử dụng keystore explorer trên windows

Nếu bạn đang sử dụng chứng chỉ được ký bởi Cơ quan cấp chứng chỉ không được bao gồm trong tệp trích dẫn Java theo mặc định, bạn cần hoàn tất cấu hình sau cho các kết nối HTTPS. Để nhập chứng chỉ vào cacerts:

  1. Mở Windows Explorer và điều hướng đến tệp cacerts, nằm trong thư mục con jre \ lib \ security nơi AX Core Client được cài đặt. Vị trí mặc định là C: \ Chương trình tập tin \ Phần mềm ACL \ Máy khách lõi AX \ jre \ lib \ security
  2. Tạo một bản sao lưu của tập tin trước khi thực hiện bất kỳ thay đổi.
  3. Tùy thuộc vào chứng chỉ bạn nhận được từ Tổ chức phát hành chứng chỉ bạn đang sử dụng, bạn có thể cần nhập chứng chỉ trung gian và / hoặc chứng chỉ gốc vào tệp trích dẫn. Sử dụng cú pháp sau để nhập chứng chỉ: keytool -import -alias -keystore -trustcacerts -file
  4. Nếu bạn đang nhập cả hai chứng chỉ, bí danh được chỉ định cho mỗi chứng chỉ sẽ là duy nhất.
  5. Nhập mật khẩu cho kho khóa tại dấu nhắc mật khẩu của mật khẩu và nhấn Enter. Mật khẩu Java mặc định cho tệp cacerts là Thay đổi trực tuyến. Nhập 'y' vào phần Tin cậy của Chứng chỉ này? Dấu nhắc và nhấn Enter.

4 hữu ích 1 bình luận chia sẻ

answer

1

Cách sử dụng keystore explorer trên windows

Lệnh đơn giản 'keytool' cũng hoạt động trên Windows và / hoặc với Cygwin.

NẾU bạn đang sử dụng Cygwin ở đây là lệnh được sửa đổi mà tôi đã sử dụng từ cuối câu trả lời "S.Botha's":

  1. đảm bảo bạn xác định JRE bên trong JDK mà bạn sẽ sử dụng
  2. Bắt đầu lời nhắc / cygwin của bạn với tư cách quản trị viên
  3. đi vào bên trong thư mục bin của JDK đó, ví dụ cd / cygdrive / c / Chương trình \ Files / Java / jdk1.8.0_121 / jre / bin
  4. Thực hiện lệnh keytool từ bên trong nó, nơi bạn cung cấp đường dẫn đến Chứng chỉ mới của bạn ở cuối, như vậy:

    ./keytool.exe -import -trustcacerts -keystore ../lib/security/cacerts  -storepass changeit -noprompt -alias myownaliasformysystem -file "D:\Stuff\saved-certs\ca.cert"

Lưu ý, bởi vì nếu điều này nằm dưới Cygwin, bạn sẽ đưa ra một đường dẫn đến chương trình không phải là Cygwin, vì vậy đường dẫn này giống như DOS và được trích dẫn.

1 hữu ích 0 bình luận chia sẻ

answer

0

Cách sử dụng keystore explorer trên windows

Có thể muốn thử

keytool -import -trustcacerts -noprompt -keystore <full path to cacerts> -storepass changeit -alias $REMHOST -file $REMHOST.pem

Tôi thực sự không biết nó đặt chứng chỉ của bạn ở đâu nếu bạn chỉ viết cacertschỉ cho nó một đường dẫn đầy đủ

0 hữu ích 0 bình luận chia sẻ

answer

0

Cách sử dụng keystore explorer trên windows

cài đặt chứng chỉ trong java linux

/ opt / jdk (phiên bản) / bin / keytool -import -alias aliasname -file cert.cer -keystore cacerts -storepass password

0 hữu ích 0 bình luận chia sẻ

Cách sử dụng keystore explorer trên windows

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Cách sử dụng keystore explorer trên windows