2010-10-16 31 views
4

我正在運行DotNetOpenAuth的mono分支版本,並且在嘗試使用google進行身份驗證時遇到No OpenID Endpoint Found錯誤,但不知道如何診斷它們。DotNetOpenAuth - 在Mono上診斷「找不到OpenID Endpoint」

更多信息:

  • 運行相同的單支建立在Windows下工作。
  • 使用本地openid提供程序進行身份驗證可以正常工作(Windows和Linux)。
  • 使用myopenid工程進行身份驗證(可能導致它不是https,如谷歌?)
  • 相同的Web.Config,二進制文件在Windows和Linux下的一切。
  • 已禁用DNOA openid cacheDiscovery設置。
  • 已經通過Linux機器的防火牆檢查過SSL。 (即:wget https://www.google.com作品)。
  • 檢查了apache錯誤日誌,沒有報告錯誤。

有關如何診斷此問題的任何提示?

跟進:仍然看着這個,最好的我可以告訴這是一個mono/ssl問題與dotnetopenauth無關。來自C#代碼的簡單SSL請求會失敗,從服務器收到無效證書。錯誤代碼:0xffffffff800b010a異常。

在單聲道2.4/Ubuntu 9.10桌面下運行mozroots修復了這個問題,但是單聲道2.6/Ubuntu 10.10服務器上的相同mozroots命令沒有幫助。我使用的是這樣的:

yes yes|sudo mozroots --import --machine 

它說,它導入了證書,但一個簡單的命令行程序請求https://www.google.com仍然失敗。

+0

這兩天。謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝! – Sean 2011-09-07 01:43:53

回答

0

這是一個黑客的答案,但至少我得到它的工作...

看來,計算機證書存儲不以單聲道2.6工作/ Ubuntu的10.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 

現在,它的作品...

3

您需要創建一個空的「密鑰對」目錄旁邊的機器存儲「證書」目錄:(引擎蓋下和certmgr)

sudo mkdir /usr/share/.mono/keypairs 

mozroots不創造,但沒有它,單聲道運行時將拒絕進行連接(它不能創建自己的機器存儲只能由root寫入;爲什麼需要創建它,然後將其保留爲空,我不知道)。

+1

順便說一句1. Brad的解決方案只有在/var/www/.config/.mono/可以通過www-data – mayu 2011-03-08 05:55:03