soapUI可以访问windows存储的证书以进行数字签名请求吗?



我有和这个海报一样的需求,但是没有他们那样的PEM文件:

soap数字签名

我确实有我想在我的windows机器上签名的本地机器证书,我可以在MMC控制台的证书中看到它。根据证书的详细信息,它可以用于数字签名,因为它包含一个私钥。

MMC控制台只允许我导出没有私钥的证书(可以理解)。

有人知道SoapUI(或任何基于Java的客户端)是否可以使用此证书进行数字签名请求吗?谢谢。

我认为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或以上。

最新更新