Как я могу добавить скрипт в SoapUI, чтобы получить свой сертификат из Windows Certificate Store и использовать его для запроса - PullRequest
0 голосов
/ 27 марта 2019

Мне нужен SoapUI, чтобы каким-то образом получить правильный сертификат из хранилища сертификатов Windows и использовать этот сертификат для запросов мыла.Мы используем жесткие сертификаты (USB и т. Д.) Для сертификатов и не можем экспортировать их в виде файла pfx.

После некоторых исследований я вставил код Java, который получает сертификат x509, и поместил его в раздел сценария загрузки для SoapUI.

import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.security.PrivateKey;
import java.security.Provider;
import java.security.Signature;

KeyStore keystore = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
keystore.load(null, null);

for (Enumeration oEnum = keystore.aliases(); oEnum.hasMoreElements();) { 
    String sAlias = (String) oEnum.nextElement();
    X509Certificate oPublicCertificate = (X509Certificate) keystore.getCertificate(sAlias);            
    PrivateKey oPrivateKey = (PrivateKey) keystore.getKey(sAlias,null);
    if(oPrivateKey == null) 
        continue;
    log.info("Found a private key with Alias name:"+sAlias);
    Provider p = keystore.getProvider();
    // data to signed
    byte[] data ="this is the just for test".getBytes();
    // Signing the data
    Signature sig = Signature.getInstance("SHA1withRSA");
    sig.initSign(oPrivateKey);

    sig.update(data);
    byte[] signature = sig.sign();

    Signature verifier = Signature.getInstance("SHA1withRSA", p);
    verifier.initVerify(oPublicCertificate);
    verifier.update(data);
    log.info("the verification result "+verifier.verify(signature));
}

Таким образом, он находит сертификат и позволяет мне ввести мой пин-код, но как мне прикрепить этот сертификат до того, как будут сделаны какие-либо мыльные звонки.Или, если есть другой способ сделать это.Спасибо.

...