如何将客户端pkcs12证书添加到Postman Chrome,W7?

2022-09-04 02:09:46

我尝试测试一个“奇怪的”GET请求,我必须提供BASIC身份验证和客户端证书。

我尝试使用Postman Chrome进行检查,但我不知道如何将证书从Chrome个人证书链接到我的请求。

我看到了这个讨论:https://github.com/a85/POSTMan-Chrome-Extension/issues/482 但它是关于MAC密钥库的,我不能转置是W7 / Chrome。

这是我的java代码设置,应该做与邮递员相同的工作,以帮助您了解我希望邮递员做什么。我们用那篇文章来写它

        InputStream is = context.getResources().getAssets().open("CertificateFile.p12");
        KeyStore keyStore = KeyStore.getInstance("PKCS12");
        BufferedInputStream bis = new BufferedInputStream(is);
        String password ="xxxxx";
        keyStore.load(bis, password.toCharArray()); // password is the PKCS#12 password. If there is no password, just pass null
        // Init SSL Context
        KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
        kmf.init(keyStore, password.toCharArray());
        KeyManager[] keyManagers = kmf.getKeyManagers();
        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(keyManagers, null, null);
        HttpsURLConnection urlConnection = null; 
        String strURL = "theUrlITryToHit";
        url = new URL(strURL);
        urlConnection = (HttpsURLConnection) url.openConnection();
        if(urlConnection instanceof HttpsURLConnection) {
            ((HttpsURLConnection)urlConnection)
            .setSSLSocketFactory(sslContext.getSocketFactory());
        }
        urlConnection.setRequestMethod("GET");
        String basicAuth = "Basic " + Base64.encodeToString("pseudo:password".getBytes(), Base64.NO_WRAP);
        urlConnection.setRequestProperty ("Authorization", basicAuth);

答案 1

我使用的是Mac,但它对你来说可能很相似。如果你可以在电脑上使用 CURL,请查看是否可以先让它与 CURL 配合使用:

curl --insecure --cert-type P12 --cert /path-to/your-file.p12:the-password https://your-host.com/endpoint

邮递员设置:

Postman->preferences->General
SSL certificate verification OFF

邮递员证书:

Postman->preferences->Certificates
Client Certificates:


Host yourhost.com
CRT file
Key file
PFX file  /path-to-file/CertificateFile.p12  
Passphrase your-file-password

答案 2

我遇到了类似的问题,只是让它工作。我的私钥和证书存储在.pem文件中,所以我首先需要将它们放入Windows将使用的格式。我用以下命令做到了这一点:

openssl pkcs12 -inkey mycertandkey.pem -in mycert.crt -export -out mycertandkey.pfx

我在linux中这样做了,但如果你安装了openssl,它也应该在Windows中工作。

在 Windows 中运行。右键单击“个人”文件夹,然后选择“所有任务” - >“导入...”。,然后选择 .pfx 文件。输入密码并将其导入到“个人”文件夹中。certmgr.msc

完成后,您需要关闭正在运行的 Chrome 窗口。然后在新窗口中打开邮递员。当您尝试连接到 URL 时,这次它应该要求确认使用客户端证书。确认后,您应该能够从那时起调用URL。


推荐