首页 文章

wso2 API Manager |如何将客户端证书与后端/目标 endpoints 关联

提问于
浏览
0

我们有一个api的后端,需要在访问api时显示客户端证书 . 我们已将客户端证书添加到repository / resources / security / client-truststore.jks以及所有Root CA和Intermediate Certs . 重启服务器 .

我相信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 manger中执行此操作,请告知如何将客户端证书关联到后端URL ...以便它将由wso2 api-manager发送并且后端将能够处理请求 .

谢谢 .

1 回答

  • 1

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

    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配置为Trust Store,用于10.100.5.130:9443 <parameter name =“customSSLProfiles”>的所有连接
    <轮廓>
    <服务器> 10.100.5.130:9443 </服务器>
    <信任库>
    <位置>库/资源/安全/客户机 - truststore.jks
    </位置>
    <类型> JKS </类型>
    <密码> wso2carbon </密码>
    </信任库>
    </简档>
    </参数>
    要启用此配置的动态加载,请将以下配置添加到API Manager的传输发送器配置(PassThroughHttpSSLSender)(
    /repository/conf/axis2.xml) . 将文件路径上方设置为“filePath”参数 . <parameter name =“dynamicSSLProfilesConfig”>
    <文件路径>库/部署/服务器/ multi_ssl_profiles.xml </文件路径>
    <fileReadInterval> 3600000 </ fileReadInterval>
    </参数>
    <parameter name =“HostnameVerifier”> AllowAll </ parameter>
    现在,后端服务和ESB都配置为使用默认密钥存储,并且API Manager配置为加载动态SSL配置文件 . 重启API Manager . 它将在控制台中显示以下消息,确认已加载动态配置 . ClientConnFactoryBuilder customSSLProfiles配置从路径加载:

相关问题