我想製作一個簡單的python CGI腳本(在我的情況下由apache託管)來讀取客戶端證書並記錄訪問腳本的人員。我的問題似乎很簡單,但我無法在WWW上找到任何信息:使用python CGI腳本,您如何獲取客戶端證書?我已經有了一個工作腳本和SSL,只是試圖破壞客戶端證書上的代碼。我打算嘗試另一個web服務器,但我想保持它作爲香草儘可能,所以沒有web框架(django等)與Python作爲CGI網絡應用程序相互認證?
1
A
回答
2
如果您使用Apache HTTPD與mod_ssl然後這實際上很容易。您可以指示mod_ssl的出口SSL related information into environment variables這種配置指令:
SSLOptions +StdEnvVars
然後,您可以讀取環境變量所需的所有信息,而無需任何外部依賴 - 對用Perl編寫例如基本的CGI腳本從客戶端的證書會是什麼樣顯示COMMONNAME這樣的:
#!/usr/bin/perl
use strict;
print "Content-type: text/html\n";
print "\n";
print $ENV{"SSL_CLIENT_S_DN_CN"}
我約SSL authentication in Apache HTTPD幾年前寫的全長文章,但它只有在斯洛伐克語可用。但它可以是translated to English with Google Translate。
+0
我在等待答案時發現了這個確切的解決方案。使用python,環境變量存儲在os.environ.items()中。感謝您及時的回覆! – Derrick
相關問題
- 1. 程序與網絡互動
- 2. Python作爲CGI網絡服務器
- 3. 一次性認證的網絡鏈接與Facebook應用程序
- 4. 網絡應用認證
- 5. 認證並使用Google Spreadsheet作爲網絡應用程序的數據庫
- 6. 作爲網絡應用程序部署
- 7. 網絡應用程序:互相講話的模塊
- 8. 與網絡交互的應用程序集成測試
- 9. 使用Flask應用程序作爲非網絡相關程序的接口
- 10. 來自本機iPhone應用程序和jqTouch網絡應用程序的元素可以相互作用嗎?
- 11. 許可證網絡應用程序
- 12. IOS相互認證
- 13. Python查詢 - 網絡應用程序等
- 14. iphone應用程序與網站互動
- 15. dotnetcore相互證書認證?
- 16. 任何Haskell網絡服務器都可以運行Python CGI應用程序嗎?
- 17. 認證與OWIN和WsFederation爲MVC,網絡API和signalR應用程式
- 18. Gdata python谷歌應用程序認證
- 19. Python應用程序Django的網絡應用程序
- 20. Android:猴子與網絡應用程序
- 21. 實時網絡應用程序與PouchDB
- 22. 如何從互聯網訪問我的網絡應用程序?
- 23. SoapUI中的相互認證認證
- 24. Watir與這個網絡應用程序相匹配
- 25. Rails應用程序與CAS認證
- 26. 網絡應用程序停止工作
- 27. 網絡/網絡編程與Python
- 28. 部署python CGI應用程序
- 29. os.times()in Python CGI應用程序
- 30. Android應用程序互聯網訪問不能在AT&T網絡上工作
另一種可能性是隻用[this](https://www.piware.de/2011/01/creating-an-https-server-in-python/)在Python中編寫服務器。但即使如此,我仍然希望獲得客戶證書。 – Derrick