我想製作一個簡單的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. 一次性認證的網絡鏈接與Facebook應用程序
- 3. 網絡應用認證
- 4. 認證並使用Google Spreadsheet作爲網絡應用程序的數據庫
- 5. 來自本機iPhone應用程序和jqTouch網絡應用程序的元素可以相互作用嗎?
- 6. 許可證網絡應用程序
- 7. iphone應用程序與網站互動
- 8. dotnetcore相互證書認證?
- 9. 任何Haskell網絡服務器都可以運行Python CGI應用程序嗎?
- 10. Gdata python谷歌應用程序認證
- 11. Python應用程序Django的網絡應用程序
- 12. 如何從互聯網訪問我的網絡應用程序?
- 13. SoapUI中的相互認證認證
- 14. Watir與這個網絡應用程序相匹配
- 15. Rails應用程序與CAS認證
- 16. 網絡/網絡編程與Python
- 17. Android應用程序互聯網訪問不能在AT&T網絡上工作
- 18. 部署python CGI應用程序
- 19. os.times()in Python CGI應用程序
- 20. 應用程序之外的其他程序的相互作用
- 21. 來開發應用程序:使用手機相機作爲網絡攝像頭
- 22. Tomcat + SNI +相互認證
- 23. 將Android應用程序轉換爲網絡應用程序
- 24. 讀取網絡文件與認證
- 25. 爲Web服務啓用SSL「相互認證」併爲GUI啓用「單向認證」?
- 26. Chrome網絡應用程序
- 27. Android網絡應用程序
- 28. 在Windows 8中顯示網絡應用程序作爲全屏應用程序
- 29. 作爲本地應用程序運行的iPhone網絡應用程序
- 30. 通過網絡爲iPhone應用程序暴露python api
另一種可能性是隻用[this](https://www.piware.de/2011/01/creating-an-https-server-in-python/)在Python中編寫服務器。但即使如此,我仍然希望獲得客戶證書。 – Derrick