我们尝试使用Wso2身份连接.net应用程序,但是当我请求
时https://localhost:9443/oauth2/token如下:
String clientId = txtClientId.Text;
String clientSecret = txtSecret.Text;
String grantType = txtgrantType.Text;
String redirectUri = txtReqUri.Text;
NameValueCollection param = new NameValueCollection();
param.Add("client_id", clientId);
param.Add("client_secret", clientSecret);
param.Add("grant_type", grantType);
param.Add("redirect_uri", redirectUri);
param.Add("code", code);
String serverUrl = "https://localhost:9443/";
WebClient client = new WebClient();
//Call the token endpoint and acess the token details
var result = client.UploadValues(serverUrl + "oauth2/token", param);
我们遇到问题基础连接已关闭:无法为SSL / TLS安全通道建立信任关系 我们在.net应用程序中包含了认证,如下图所示,您能否告诉我默认认证的配置 wso2carbon.jks
答案 0 :(得分:1)
底层连接已关闭:无法为SSL / TLS安全通道建立信任关系
似乎(正如您所知)您的.net应用程序正在调用身份服务器,并且客户端不信任身份服务器提供的SSL证书。
简单的解决方法 - 当服务器位于同一个专用网络上时,您也可以使用HTTP协议(假设通信在不同的边界上安全):http://is_hostname:8280/token
正确的解决方案 - 将SSL与合格证书一起使用。首先,让它使用当前提供的证书
我们在.net应用程序中包含了认证,如下图所示,您能否给我一份默认认证的配置wso2carbon.jks
你刚刚在你的项目中删除了carbon.jks文件,你是否希望它能够自行运行? (JKS是Java KeyStore)
证书是自签名自定义证书(未经任何受信任的CA签名),域名为CN=localhost
要获取受信任的默认证书,您需要强制执行:
我必须管理员我不是.net程序员,我宁愿让你搜索网络而不是为你提供如何设置这些点的错误答案。
要导出证书 - easies方式是打开身份服务器的控制台并从浏览器导出证书。 (或者您可以使用openssl s_client -connect server:port
,keytool或其他工具)