0

私の同僚は、私たちのプロジェクトが使用する相互認証を使用して (Bluemix) セキュア ゲートウェイをセットアップしました。Ruby と CURL でテストしたところ、問題なく動作しました。しかし、Liberty サーバーを使用するように構成すると、多くの問題が発生します。

ここにある手順を使用しました。

基本的...

クライアントのキー ストアを作成するには、次のコマンドを入力します。次の例では、key.p.12 が作成されます。

openssl pkcs12 -export -in "[client]_cert.pem" -inkey "[client]_key" -out "sg_key.p12" -name BmxCliCert -noiter –nomaciter –password pass:<password>

これにより、PKCS12 ストアが作成されます。(以下の server.xml でこれを使用します)

次に、証明書をキーストアに追加しました。

次に、server.xml を変更して、自分で参照されているトラスト ストアを作成しました。

<ldapRegistry baseDN="o=ibm.com" host="bluepages.ibm.com" id="bluepages" ignoreCase="true" 
    ldapType="IBM Tivoli Directory Server" port="636" realm="w3" sslEnabled="true" sslRef="SSLSettings">

    <idsFilters groupFilter="(&amp;(cn=%v)(objectclass=groupOfUniqueNames))" groupIdMap="*:cn" groupMemberIdMap="groupOfUniqueNames:uniquemember" userFilter="(&amp;(emailAddress=%v)(objectclass=person))" userIdMap="*:emailAddress"/>

</ldapRegistry>

<ssl id="SSLSettings" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore"/>     

<keyStore id="defaultKeyStore" password="xxxxxx" 
    location="${server.output.dir}/resources/security/key.jks"/>

<keyStore id="defaultTrustStore"
    location="${server.output.dir}/resources/security/sg_key.p12"
    type="PKCS12" password="xxxxxx" />

これが問題#1です

トラスト ストアを追加すると、LDAP サーバー経由で認証できなくなります。無効なユーザーまたはパスワードと表示されるだけです。トラスト ストアを削除すると、再度認証できるようになります。したがって、トラストストアを追加すると、何らかの影響があります。

問題#2。LDAP サーバーを削除して基本ユーザー・レジストリーのみを使用すると... ログインできます..しかし、セキュア・ゲートウェイを使用しようとすると、..

[err] javax.net.ssl.SSLHandshakeException: 致命的なアラートを受信しました: handshake_failure

セキュア ゲートウェイから証明書をインポートしましたが、なぜこれが得られるのかわかりませんか?

したがって、2 つの問題があります..トラストストアを使用する..LDAP 経由で認証できなくなります...そして 2 つ目..すべての証明書をインポートした後でも、セキュア ゲートウェイに接続できません...

Java の Secure Gateway (相互認証) で Bluemix を使用して成功した人はいますか?

要求された情報 (編集済み)

Enter Import Password:
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    friendlyName: portal
    localKeyID: 5F A0 D5 5D 68 C5 39 65 7D 24 D7 78 9B CD 7D 01 FB 1B 00 6D 
subject=/ST=NC/C=US/L=RTP/O=IBM Corporation/OU=SWG/CN=*.integration.ibmcloud.com
issuer=/ST=NC/C=US/L=RTP/O=IBM Corporation/OU=SWG/CN=*.integration.ibmcloud.com
-----BEGIN CERTIFICATE-----
INFO
4Q==
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Bag Attributes
    friendlyName: portal
    localKeyID: 5F A0 D5 5D 68 C5 39 65 7D 24 D7 78 9B CD 7D 01 FB 1B 00 6D 
Key Attributes: <No Attributes>
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN ENCRYPTED PRIVATE KEY-----
INFO
-----END ENCRYPTED PRIVATE KEY-----
4

1 に答える 1

0

最後にこれを機能させました。

前のコード..

. . . .

connection = (HttpsURLConnection) url.openConnection();

url は Secure Gateway の URL です。

この前追加…

KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream(KEY_STORE_PATH), "xxxxxx".toCharArray());

KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

kmf.init(clientStore, "xxxxxx".toCharArray());

KeyManager[] kms = kmf.getKeyManagers();

KeyStore trustStore = KeyStore.getInstance("JKS");

trustStore.load(new FileInputStream(TRUST_STORE_PATH), "xxxxxx".toCharArray());

TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

tmf.init(trustStore);

TrustManager[] tms = tmf.getTrustManagers();

SSLContext sslContext = null;

sslContext = SSLContext.getInstance("TLS");

sslContext.init(kms, tms, new SecureRandom());

HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());`

connection = (HttpsURLConnection) url.openConnection();

今では動作します... tx

このスレッドのいくつかの良い情報.. LINK

于 2016-04-12T17:09:01.300 に答える