【问题标题】:Service Bus for Windows Server Certificate Cannot be Verified [closed]无法验证 Windows Server 证书的服务总线 [关闭]
【发布时间】:2012-10-24 16:37:18
【问题描述】:

使用Service Bus for Windows Server

我得到以下异常。

Message=X.509 证书 CN=*********** 不在受信任的 人商店。 X.509 证书 CN=********** 建链失败。 所使用的证书具有无法被信任的信任链 已验证。更换证书或更改 证书验证模式。证书的签名不能 已验证。

我正在尝试从我的 Dev Box 连接到另一台计算机上的服务总线

这是我正在使用的控制台应用程序的代码。

ServicePointManager.ServerCertificateValidationCallback = 
   new RemoteCertificateValidationCallback(ValidateServerCertificate);
ServicePointManager.CheckCertificateRevocationList = false;

NamespaceManager namespaceManager = NamespaceManager.Create();
MessagingFactory messagingFactory = MessagingFactory.Create();

if (namespaceManager.QueueExists(QueueName))
{    
    namespaceManager.DeleteQueue(QueueName);    
}
namespaceManager.CreateQueue(QueueName);

string QueueName = "ServiceBusQueueSample";                       
QueueClient myQueueClient = messagingFactory.CreateQueueClient(QueueName);

BrokeredMessage sendMessage = new BrokeredMessage("Hello World !");   
myQueueClient.Send(sendMessage); <---- !!!Exception!!!

我从服务总线服务器导出了证书 使用:Get-SBAutoGeneratedCA 自动生成的CA.cer 自动生成CA.cr1

然后我使用默认设置将这两个文件导入我的开发箱。

我已将以下项目添加到我的 app.config。

  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior >
          <clientCredentials>
            <serviceCertificate>
              <authentication  certificateValidationMode="None" 
                                                       revocationMode="NoCheck" />
            </serviceCertificate>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>

  <microsoft.identityModel>    
   <service>       
      <certificateValidation certificateValidationMode="None"    />
   </service>    
  </microsoft.identityModel>

我能够成功验证并检查队列是否存在并将其删除然后创建一个新的。

在寻找解决方案时,我找到了this 提示吊销服务器有问题,因为我还导入了证书吊销列表我没有看到这是我的问题

我还找到了this: 链接到这个博客post: 我按照建议没有成功。

这个博客Post:
建议设置 revocationMode="NoCheck" 对这个问题没有影响,他的解决方案是欺骗证书吊销列表

这个博客Post: 建议添加端点行为来禁用certificateValidationMode,我做了,但我仍然收到错误。

注意:当我在我的开发机器上托管服务总线时,一切正常。

有什么我没有尝试过的建议吗?

【问题讨论】:

标签: c# x509certificate servicebus


【解决方案1】:

原来我没有正确导入证书...

我按照这些说明进行操作,一切正常..

http://msdn.microsoft.com/en-us/library/windowsazure/jj192993(v=azure.10).aspx

我猜右键单击并安装证书将它们放在错误的位置。

【讨论】:

  • 将 .cer 文件放入计算机的受信任证书颁发机构列表非常重要。默认情况下,它位于用户列表中。
猜你喜欢
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 2014-09-16
  • 1970-01-01
相关资源
最近更新 更多