首页 > 解决方案 > 如何在没有 SSL 管理器插件的情况下使用 HTTP Sender 提交客户端证书?

问题描述

我们有一个 Mirth 服务器,它不在支持合同下,它需要POST客户端证书认证的 HTTPs 服务。由于证书是自签名的,因此添加它appdata\keystore.jks似乎不起作用。

如何在不花大价钱的情况下为 HTTP Sender 目的地明确指定客户端证书?

标签: httpsclient-certificatesmirthmirth-connect

解决方案


创建一个 nginx 反向代理。这样,Mirth 只需在 HTTP 上连接 - nginx 提交客户端证书。

对于窗户:

  1. 解压nginx
  2. 更新 conf\nginx.conf
  3. 设置为使用 nssm 作为服务启动

nginx.conf为了简单起见,我将其替换为以下内容,仅在http://127.0.0.1:8106/上收听:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    server {
        listen 127.0.0.1:8106;
        server_name localhost;

        location / {
            proxy_pass https://upstream-server;

            # To generate a key&crt from pfx:
            # openssl pkcs12 -in client-certificate.pfx -nocerts -out client-certificate.key -nodes
            # openssl pkcs12 -in client-certificate.pfx -clcerts -nokeys -out client-certificate.crt

            proxy_ssl_certificate "C:/path/to/nginx-1.15.3/conf/client-certificate.crt";
            proxy_ssl_certificate_key "C:/path/to/nginx-1.15.3/conf/client-certificate.key";
        }
    }
}

推荐阅读