wso2 API 管理器 |如何将客户端证书关联到后端/目标端点

2024-02-09

我们有一个 api 后端,在访问 api 时需要提供客户端证书。 我们已将客户端证书以及所有根 CA 和中间证书添加到repository/resources/security/client-truststore.jks。重新启动服务器。

我相信 Wso2 现在能够向后端 API 发送调用并返回状态代码 403。它返回 403 是因为后端 API 没有收到带有请求的客户端证书...

{
"timestamp": "2017-03-14T21:33:36.523Z",
 "status": 403,
  "error": "Forbidden",
  "message": "Access Denied",
  "path": "/registrations"
}

当我们直接从带有证书的服务器执行后端时,它工作正常:

curl -k --cert /tmp/client.pem:changeit -X POST   https://10.7.64.36:8443/registrations -H "Content-Type: application/json" -d "{\"primaryAccountNumber\": \"12122121212\"}"

我们得到了有效的回复:

{"registration_id":null,"transaction_id":null,"authentication_code":null,"qr_code_image":null,"registered":null,"status":null,"score":null,"reason_codes":[]}

那么curl如何在请求中发送--cert如何在wso2 api管理器中执行此操作,请告知如何将客户端证书关联到后端url..以便它将由wso2 api管理器发送并且后端将能够处理的请求。

谢谢。


对于相互 ssl,您可以参考以下博客文章。

http://ishara-cooray.blogspot.com/2016/07/how-to-secure-your-backend-services-and.html http://ishara-cooray.blogspot.com/2016/07/how-to-secure-your-backend-services-and.html

这是博客文章的重要部分。

配置 API Manager 以启用动态 ssl 配置文件

要为 HHTPS 传输发送方的动态 SSL 配置文件配置 APIM, 您需要创建一个新的 XML 文件 /repository/deployment/server/multi_ssl_profiles.xml(此 路径是可配置的)并将以下配置复制到其中。这 将配置 client-truststore.jks 作为所有信任库 连接到 10.100.5.130:9443

<parameter name="customSSLProfiles">
 <profile>
  <servers>10.100.5.130:9443</servers>
  <TrustStore>
          <Location>repository/resources/security/client-truststore.jks
   </Location>
   <Type>JKS</Type>
   <Password>wso2carbon</Password>
  </TrustStore>
</profile>
</parameter>

要启用此配置的动态加载,请添加以下内容 配置到传输发送方配置 API Manager 的 (PassThroughHttpSSLSender) ({AM_HOME}/repository/conf/axis2.xml)。将上述文件的路径设置为 “文件路径”参数。

<parameter name="dynamicSSLProfilesConfig">
  <filePath>repository/deployment/server/multi_ssl_profiles.xml</filePath>
  <fileReadInterval>3600000</fileReadInterval>  
</parameter>
<parameter name="HostnameVerifier">AllowAll</parameter>

现在后端服务和 ESB 都配置为使用默认密钥 商店和 API Manager 配置为加载动态 SSL 配置文件。 重新启动 API 管理器。它将在控制台中显示以下消息 确认已加载动态配置。

ClientConnFactoryBuilder customSSLProfiles 配置已加载 从路径:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wso2 API 管理器 |如何将客户端证书关联到后端/目标端点 的相关文章

随机推荐

  • NHibernate.LazyInitializationException

    我们一直偶尔会出现这个问题 但现在我每次都可以重现它 我正在增加自定义论坛上的查看计数器 这会导致错误 NHibernate LazyInitializationException 未能延迟初始化集合 没有会话或会话被关闭 此错误发生在对象
  • 从 virtualenv 中启动 wsgi 应用程序作为 Linux 系统服务

    我目前正在 virtualenv 中开发一个 Bottle 应用程序 我打算使用 bjoern WSGI 服务器来提供它 但这可能并不重要 我还打算使用 lighty 或 nginx 反向代理来为应用程序提供服务 无论如何 应用程序可以作为
  • ECS任务如何知道在哪个区域运行?

    我有一个在 ECS 启动的任务中使用 boto3 的 python 应用程序 在 docker 容器中 我使用的 boto3 命令需要一个区域才能正常工作 但我只知道运行时的区域 多区域应用程序 当时的想法是定义AWS DEFAULT RE
  • 在 if 条件下改变字符串变量

    我使用这个程序将输入 mm 作为一年中的月份并打印出月份的名称 include
  • 如何根据 UIAlertController 中的 UITextField 禁用 UIAlertAction?

    我正在使用一个UIAlertController向用户呈现一个对话框以输入5 位 CRN 我想要Add按钮将被禁用 直到字段中有五位且仅有五位数字 UITextField 用户界面如下所示 以下是为以下内容设置的属性UIAlertContr
  • 如何从 docker 镜像中删除 ENV 设置

    我有一个设置 HOME 和 PATH 的 docker 映像 config HOME 我知道我可以替换它 但是是否可以删除它 并使用正常的 bash 配置文件设置 我不想通过破解 shell 配置文件来覆盖它 我无法让 creack 的答案
  • Java 6正则表达式一组的多个匹配

    这是简单的模式 key value1 value2 value3 valueN 我想得到 key 值数组 这是我的正则表达式 这是我的文字 foo a b c d Matcher给了我 2 组 foo 作为键 和d 作为值 如果我使用 代替
  • Java 硬件中断处理

    我想知道当硬件中断发生时是否可以自动调用Java方法 可能还有其他选择 我正在做类似的事情 在一个应用程序中 我监视 4 只鼠标的点击情况 这些点击会产生中断 但我很高兴不直接从 Java 处理它们 在Linux下 原来有设备文件 dev
  • 检查角度 2 中是否存在路线

    我想检查角度项目中是否存在路线 例如用户类型http localhost 4200 timestamp在网址栏中和timestamp项目中不存在 如何在不重定向的情况下进行检查 Sajeetharan 的回答涉及router config是
  • 如果命令在 mac 终端内运行,如何让 shell_exec 表现得像命令一样?

    当我在 php 脚本中运行命令时 echo shell exec which php 我得到以下输出 usr bin php 但是 当在 mac 终端中运行相同的命令时 which php 我得到以下输出 php aliased to Ap
  • Django 管理命令导入错误

    我在导入模块时遇到问题qsl management commands
  • SQL Server 中符号 @@ 的含义

    符号的含义是什么 在 SQL Server 中 在 SQL Server 中 符号 是全局变量的前缀 服务器维护所有全局变量 我们不能宣布它们
  • 了解模板方法模式

    据我了解 模板方法只不过是调用子类中定义的虚拟或抽象方法的普通方法 我是对的吗 还是我错过了关于这种模式的其他重要内容 abstract class Foo public void IamTemplateMethod which will
  • 将大型网站从 MySQL 切换到 MySQLi [重复]

    这个问题在这里已经有答案了 我想从 MySQL 切换到 MySQLi 但我有一个非常大的网站 我读到了https wikis oracle com display mysql Converting to MySQLi https wikis
  • 使用 std::map/boost::unordered_map 帮助理解段错误

    我有一些代码使用模板静态类来处理资源 图像 字体 网格数据等 管理 允许客户端代码执行以下操作 ResourceManager
  • Angular:在 [innerHtml] 内绑定变量

    我正在尝试使用 innerHtml 在 div 内绑定数据 如何通知 Angular 使用变量而不是原始文本 这是我的设置 div div div div div div 数据如下 someOtherData id 1 template d
  • 在 Java 字符串中添加新行

    我希望我的输出是多行但是 n似乎不适合我 难道我做错了什么 谢谢 期望的输出 你好 姓名 重量 公斤 XX 高度 米 XX BMI XX CODE SimpleOutput showInformation Hello name n Weig
  • 当 POCO 具有 IsReference = true 属性时序列化 EF 代理

    当实体框架代理的类被装饰时 如何序列化实体框架代码优先代理DataContractAttribute IsReference true 当将 DataContractSerializer 与 ProxyContractResolver 一起
  • 无法使用 Nodemailer 连接到 Outlook.com SMTP

    我正在像这样创建传输对象 var transport nodemailer createTransport SMTP host smtp mail outlook com hostname secureConnection false us
  • wso2 API 管理器 |如何将客户端证书关联到后端/目标端点

    我们有一个 api 后端 在访问 api 时需要提供客户端证书 我们已将客户端证书以及所有根 CA 和中间证书添加到repository resources security client truststore jks 重新启动服务器 我相