当前位置: 首页 > 面试题库 >

使用python访问具有PKI安全性的网站

濮阳弘扬
2023-03-14
问题内容

我有一个启用了PKI安全性的网站。每个客户端都使用读卡器加载其证书,或者将证书安装在其包装盒的IE证书存储中。

所以我的问题是:

  1. 如何使用读卡器证书或系统上存储的证书来验证系统?
  2. 我如何将凭据传递到网站上说,嘿,我是我,我可以访问该服务?他们的示例可以使用软证书。我稍后可以弄清楚读卡器的一部分。

我一直在搜寻,在这种情况下我没有想出什么对我有帮助。Django有很多模块,但这不是一个选择,因为我只关心客户端。我没有创建托管服务的站点。我只需要访问这些服务。

我有这样的代码工作。我只是不知道如何处理我得到的重定向:

import httplib
KEYFILE = r"C:\cert\my.key"
CERTFILE = r"c:\cert\my.pem"
HOSTNAME = 'machine.com'

conn = httplib.HTTPSConnection(
    HOSTNAME,
    key_file = KEYFILE,
    cert_file = CERTFILE
)

conn.putrequest('GET', '/arcgis/sharing/rest?f=json')
conn.endheaders()
response = conn.getresponse()
print response.read()

所有这些的结果是:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://machine.com/pki?https://machine.com/arcgis/sharing/rest%3f&amp;f=json">here</a>.</p>
</body></html>

提供的任何帮助将是巨大的!

软件规格:python 2.7.8,Windows 2012 R2


问题答案:

我创建了一个PKI处理程序来处理请求,因此可以在urllib2库中使用它。

import httplib, urllib2

class HTTPSClientAuthHandler(urllib2.HTTPSHandler):

    def __init__(self, key, cert):
        urllib2.HTTPSHandler.__init__(self)
        self.key = key
        self.cert = cert
    def https_open(self, req):
        #Rather than pass in a reference to a connection class, we pass in
        # a reference to a function which, for all intents and purposes,
        # will behave as a constructor
        return self.do_open(self.getConnection, req)
    def getConnection(self, host, timeout=300):
        return  httplib.HTTPSConnection(host,
                                             key_file=self.key,
                                             cert_file=self.cert,
                                             timeout=timeout)

要使用此功能,您将需要在处理程序中使用cookiejar。

from cookielib import CookieJar
cookiejar = CookieJay()
handlers = []
handlers.append(HTTPSClientAuthHandler(somekey, somecert))
handlers.append(urllib2.HTTPCookieProcessor(cookiejar))
opener = urllib2.build_opener(*handlers)
... do other urllib2 calls ....

希望这对大家有帮助!



 类似资料:
  • 问题内容: 我想为具有以下角色之一(ROLE1或ROLE2)的用户定义某些页面的访问权限 我正在尝试在我的spring security xml文件中进行如下配置: 我尝试了各种方法,例如: 等等 但似乎没有任何效果。 我一直在例外 要么 应该如何配置? 谢谢 问题答案: 问题是我配置了自定义 ,但没有通过其中一名选民。 通过添加到bean中来解决。

  • 我希望你能帮我做以下几件事: 我正在使用spring安全和spring MVC建立一个web应用程序,我需要重定向的流到登录页面,一旦有一个尝试访问一个禁止的资源(403 HTTP状态代码)。 现在,spring安全已经完成了防止未经授权访问我在Restful API(@RESTController)中公开的每一个资源的工作,并使用适当的403默认页面进行响应。但由于我需要重定向到登录页面,我需要

  • 使用 Dreamweaver 可生成可供有视觉、听觉、运动及其他障碍的人士使用的网站和 Web 产品。 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于辅助内容 辅助功能是指使 Web 站点和 Web 产品可供具有视觉、听觉、运动和其他障碍的人士使用。软

  • 我想将以下XML发布到web服务:- 我希望得到以下响应XML:-

  • 我想让我的CardView更容易访问。我有可点击的CardView,我希望通过角色“按钮”对该CardView进行语音反馈。我不知道怎么做。 我尝试使用ViewCompat和重写onInitializeAccessibilityNodeInfo,这对我有帮助,但不是完全的。角色“button”总是先发声,尽管对讲通常最后用真实按钮说“button”。总比什么都没有好,但是我怎样才能让对讲听起来像我

  • 本文,我们讲介绍如何在Linux和Windows上配置Minio服务使用TLS。 1. 前提条件 下载Minio server 这里 2. 配置已存在的证书 如果你已经有私钥和公钥证书,你需要将它们拷贝到Minio的config/certs文件夹,分别取名为private.key 和 public.crt。 如果这个证书是被证书机构签发的,public.crt应该是服务器的证书,任何中间体的证书以

  • 我正在使用Spring Cloud oauth-2和Spring Cloud Security构建用户身份验证系统。我想有许多可以分配给用户组的权限。权限存储为枚举常量,如下所示: 我已经将身份验证服务器设置为向内存中的客户端发出JWT令牌。(我认为)一切都很好。 下面是我的用户详细信息实现 就像我说的,身份验证服务器正在颁发令牌。我面临的问题是授权。以下是我的资源服务器超文本传输协议配置: 成功

  • Docker内置了PKI,使保障发布容器化的业务流程系统的安全性变得很简单。Swarm节点之间采用TLS来鉴权、授权和加密通信。 当我们运行docker swarm init命令时,Docker指定当前节点为一个manager节点。默认情况下,manager节点会生成一个新的根CA证书以及一对密钥。CA证书和密钥将会被用在节点之间的通信上。也可以通过参数--external-ca来指定其他CA证书