2012-11-15 49 views
2

我有一個用Rails編寫的應用程序,由於受到客戶端政府的限制,必須將其運行在IIS服務器後面。我們必須有SSL認證。因此,在我搜索Google的幾個小時內,我無法弄清楚如何讓IIS將客戶端證書傳遞到rails服務器(瘦)。IIS將客戶端證書傳遞給rails

我已經看到了使用上的Apache教程:

SSLOptions +ExportCertData 

,然後將其提供給請求對象。任何想法如何配置IIS做同樣的事情?

回答

0

被告知這可能是不可能的。我終於明白了!這是我採取的步驟。

  1. 使用OpenSSL創建您自己的CA證書。
  2. 使用生成的CA證書創建並使用Open SSL簽署其他證書。
  3. 打開Internet信息服務管理器,單擊服務器,然後單擊服務器證書。Server Certificate
  4. 點擊操作欄下的導入
  5. 導入點擊您的網站後。
  6. 在操作列點擊綁定...
  7. 單擊添加,滾動到HTTPS,然後選擇您導入您的網站
  8. 單擊CA證書再次去的菜單,然後點擊SSL設置
  9. 檢查需要SSL,然後點擊無線buttion,需要
  10. 再次點擊您的網站,然後點擊配置編輯器(安裝IIS 7.5中可以加上在7.0) Configuration Editor
  11. 轉到system.webServer /安全/認證/ iisClientCertificateMappingAuthentication
  12. 啓用設置爲true
  13. 設置manyToOneCertificateMappings爲true
  14. 點擊...框中manyToOneMappings Configuration Editor
  15. 點擊下行動列中添加的最右端,下集
  16. 添加用戶名和您創建的用戶的密碼(可以在本地計算機上)the ... box
  17. 現在,轉到主服務器並重新啓動。
  18. 您應該能夠使用request.headers哈希查看證書。

變量的散列包括:

  • CERT_SERIALNUMBER
  • CERT_SUBJECT
  • CERT_ISSUER
  • HTTPS_SERVER_ISSUER
  • HTTPS_SERVER_SUBJECT

如果canno找到可能需要安裝模塊的東西(用於類似身份驗證)。我不記得我安裝了哪些。

0

至少以您提出的問題IIS不能提供客戶端證書的問題,因爲客戶端證書將由第三方發佈。因此,您需要獲得x509證書,證明您的應用程序,然後將證書作爲iis的初始連接請求的一部分進行身份驗證。

至於從服務器向客戶端提供ssl證書的apache函數,iis不公開此功能。

這就是爲什麼你無法找到任何關於谷歌

+0

客戶端證書是由政府自己頒發的。出於測試目的,我們已經生成了證書。 –

+0

我認爲你需要手動訪問te證書請參閱http://stackoverflow.com/questions/7982421/using-client-ssl-in-a-ruby-on-rails-app –

0

主要的原因公司要運行Rails(或者其他)應用的IIS服務器的背後是SSO除了從保護資源。

看看這是否有幫助。

我們一直在IIS後面的很多客戶位置運行我們的Rails應用程序。我們在Tomcat中的JRuby中運行我們的Rails應用程序。

安裝JK ISAPI重定向器插件的步驟在這裏

http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html 

所有Rails的上下文是使用標準的IIS的身份驗證方案在IIS保護,集成Windows身份驗證(協商,NTLM)。

在Rails應用程序中,可以獲取登錄用戶的信息。

request.env['java.servlet_request'].get_remote_user 

Rails應用程序也連接到微軟AD像電子郵件,部門等其他用戶信息,

由於Rails的是盲目信任的authenticaiton它需要從直接存取防止IIS服務器。

1. Disable HTTP ports in Tomcat 
2. Enable only the AJP port 
3. Add an IP restriction so that it accepts connection only from the IIS server(s) 

== 我不認爲這是可能的IIS對證書的詳細經過。我們嘗試提取Kerboros令牌(用於kerboros身份驗證委派)並沒有取得太大的成功,並意識到這是不可能的。

+0

這假定你可以修改IIS配置是否正確?如果這不可能? –

+0

正確。需要在IIS中添加一個Web應用程序。由於IIS是流量網關,因此需要知道它背後的內容......需要對其進行配置。這表示不需要觸摸現有的網絡應用程序。 –

+0

感謝您的回答。這個問題的最大問題是我們必須讓政府批准我們在IIS上使用的所有內容。所以每個需要的東西都很難。 –