我的作品基于使用客户端证书身份验证的Azure网站。 它适用于旧证书。 我申请了新证书并将其添加到请求中。 但是当请求到达时 Azure Web 角色端。 无法从请求中检索到任何东西,我自己的代码不会执行并直接返回 403。
我想证书有问题? 我在本地机器中安装了证书,它在本地运行良好。 并使用 .pfx 和密码将其安装到 Azure 中。 没有发生任何变化。
将证书安装到 Azure 时还有其他操作吗? 有人可以帮助我吗?请
您需要分享有关确切错误是什么的更多详细信息。首先弄清楚,子状态代码到底是什么?无论是 403.7 还是403.13或其他东西
您可以为 Web 角色上托管的站点启用日志记录,并检查子状态代码 (403.??)。
您还提到客户端是一个 Azure 网站,所以我想您可以启用System.Net跟踪以收集更多详细信息并在此处共享。在客户端 Web 应用的 web.config 上添加以下内容。
<configuration>
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.Net">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Http">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.HttpListener">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.WebSockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="System.Net" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:homeLogFilesSystem.Net.trace.log" traceOutputOptions = "ProcessId, DateTime" />
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose" />
<add name="System.Net.Sockets" value="Verbose" />
<add name="System.Net.Http" value="Verbose"/>
<add name="System.Net.Cache" value="Verbose" />
<add name="System.Net.HttpListener" value="Verbose" />
<add name="System.Net.WebSockets" value="Verbose"/>
</switches>
<trace autoflush="true"/>
</system.diagnostics>
</configuration>