2

このポスターと同じニーズがありますが、PEM ファイルがありません。

soapui 石鹸デジタル署名

Windows マシンで署名したいローカル マシンの証明書があり、証明書が MMC コンソールにスナップインされていることを確認できます。証明書の詳細によると、秘密鍵が含まれているため、デジタル署名に使用できます。

MMC コンソールでは、(当然のことながら) 秘密キーなしでこの証明書をエクスポートすることしかできません。

SoapUI (または任意の Java ベースのクライアント) がこの証明書を使用してリクエストにデジタル署名できるかどうかを知っている人はいますか? ありがとう。

4

1 に答える 1

1

soapui には、Windows キーストアで秘密鍵を使用するための特定のコネクタはないと思います。

Java クライアントを使用して Windows キーストアの秘密鍵で署名する場合は、SUNMSCAPI プロバイダー ( http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html http:/ /docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#SunMSCAPI )、コード サンプルを提供します。

import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Signature;

import sun.security.mscapi.SunMSCAPI;

public class WindowsKeystoreSample {

public static final String USER_STORE = "Windows-MY";
public static final String MACHINE_STORE = "Windows-ROOT";

public static void main(String args[]) throws Exception{

    // instantiate the keystore
    KeyStore keyStore = KeyStore.getInstance(USER_STORE, new SunMSCAPI());
    keyStore.load(null, null);

    String keyAlias = "key alias";
    // password if you protect the windows keystore... if not null
    char[] password = "somepass".toCharArray();

    Signature sign = Signature.getInstance("SHA1WithRSA");
    sign.initSign((PrivateKey) keyStore.getKey(keyAlias, password));
    sign.update("dateToBeSigned".getBytes());
    byte[] signedData = sign.sign();

}

}

sunmscapi を使用するには、Java バージョン 1.6 以降が必要です。

于 2014-02-07T09:02:21.930 に答える