Linux DotNetOpenAuth-诊断“;找不到OpenID端点";单声道

Linux DotNetOpenAuth-诊断“;找不到OpenID端点";单声道,linux,mono,dotnetopenauth,Linux,Mono,Dotnetopenauth,我正在运行DotNetOpenAuth的单分支构建,在尝试使用google进行身份验证时发现未找到OpenID端点错误,但不确定如何诊断这些错误 更多信息: 在Windows works下运行相同的单分支生成 使用本地openid提供程序进行身份验证工作正常(Windows和Linux) 使用myopenid进行身份验证很有效(可能是因为它不像谷歌那样使用https?) 相同的Web.Config,二进制文件,Windows和Linux下的所有内容 已禁用DNOA openid缓存发现设置 已

我正在运行DotNetOpenAuth的单分支构建,在尝试使用google进行身份验证时发现
未找到OpenID端点
错误,但不确定如何诊断这些错误

更多信息:

  • 在Windows works下运行相同的单分支生成
  • 使用本地openid提供程序进行身份验证工作正常(Windows和Linux)
  • 使用myopenid进行身份验证很有效(可能是因为它不像谷歌那样使用https?)
  • 相同的Web.Config,二进制文件,Windows和Linux下的所有内容
  • 已禁用DNOA openid缓存发现设置
  • 已从Linux机器上检查SSL是否通过防火墙工作。(即:
    wget
    works)
  • 已检查apache错误日志,未报告任何错误
有关于如何诊断的提示吗

后续:仍在研究这一问题,据我所知,这是一个与dotnetopenauth无关的mono/ssl问题。来自C#代码的简单ssl请求失败,从服务器接收到无效证书。错误代码:0xFFFF800B010A异常

在mono 2.4/Ubuntu9.10桌面下运行mozroots可以解决这个问题,但在mono 2.6/Ubuntu10.10服务器上使用相同的mozroots命令没有帮助。我用这个:

yes yes|sudo mozroots --import --machine

它说它导入了证书,但一个简单的命令行程序请求仍然失败。

这是一个黑客回答,但至少我让它工作了

似乎机器证书存储在mono 2.6/Ubuntu10.10服务器中不起作用。不知道为什么

修复方法是将mozroots根证书导入www数据用户证书存储。因为我不知道如何使用mozroots工具来实现这一点,所以我手动完成了如下操作:

sudo mkdir /var/www/.config/.mono/certs/Trust
sudo mkdir /var/www/.config/.mono/certs/CA
sudo cp /usr/share/.mono/certs/Trust /var/www/.config/.mono/certs/Trust

现在它可以工作了…

您需要在机器存储中的“certs”目录旁边创建一个空的“keypairs”目录:

  sudo mkdir /usr/share/.mono/keypairs

mozroots(和引擎盖下的certmgr)不创建它,但如果没有它,mono运行时将拒绝建立连接(并且它无法创建它自己,因为机器存储只能由root写入;我不知道为什么它需要创建它,然后将其保留为空)。

BTW 1。Brad的解决方案只有在/var/www/.config/.mono/可以在两天内由www DATA写入时才有效。谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!!!