我想制作一个简单的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