跳转到主要内容

支持netscape / html5 SPKAC客户端证书请求

项目描述

作者:

Ralf Schlatterbeck <rsc@runtux.com>

此库支持浏览器生成的SPKAC证书请求的格式。

HTML keygen 标签,以前由大多数基于Mozilla的浏览器支持,现在是HTML-5标准的一部分。keygen标签用于HTML表单元素中,并向用户显示一个密钥生成小部件。提交时,浏览器本地生成一个公钥对,本地存储私钥,并以SPKAC格式将公钥提交给Web服务器。

当使用keygen元素生成表单时,Web服务器可以在表单中包含一个挑战字符串。这个挑战字符串被浏览器返回,并由浏览器保留的私钥与公钥一起签名。

此软件包旨在为服务器端SPKAC提供支持。它使用提交的SPKAC并检查挑战字符串是否正确,以及公钥和挑战是否由浏览器正确签名。它支持从SPKAC中的数据生成证书的方法,以及由Web应用程序提供的附加数据。

生成的证书通常可用于客户端对Web应用的认证,因此称为客户端证书。网络浏览器(或其他客户端应用程序)在SSL握手过程中提供证书,并证明其拥有必要的私钥。

在构建证书时,创建一个证书吊销列表(CRL)也是一个好主意。该包提供了使用证书序列号和吊销日期列表从头生成吊销列表的例程。

安装

使用标准的python setup.py机制进行安装,例如:

python setup.py install --prefix=/usr/local

为了使此包工作,您需要安装pyasn1M2Crypto

示例

有关使用示例,请参阅spkac.pycrl.py中的doctests。

构建说明

发布时,应执行以下命令:

python setup.py clean --all
python setup.py sdist --manifest-only
git status
python setup.py sdist --quiet
git status
python setup.py register
python setup.py sdist upload --sign

交叉的git status命令解决了旧版git版本中的一个错误,当使用带有--dirty选项的git describe时,会错误地检测到目录是stat-dirty状态。由于setup.py sdist会创建符号链接,这会使目录变为stat-dirty

–manifest-only将重新创建MANIFEST文件,即使setup.pyMANIFEST.in没有更改。

变更

版本0.7:错误修复

修复github问题

  • 修复github问题2中的版本号格式问题,我们现在使用数值值,但保留以前的标签格式(以“V-”开头)。

  • 合并pull request以解决github问题3

版本0.6:错误修复

发布现在包含0.5中缺少的文件。

  • 添加构建说明部分,并记录发布流程以避免将来缺少文件

  • 删除相对的import语句

  • __init__.py中添加版本导入

版本0.5:主要功能增强

实现证书吊销列表(CRL)

  • CRL的实现(使用MD5哈希,这以后可能需要修复,尚不清楚是否有具有更强哈希的格式)

  • 因数pem_object

  • 修复生成证书的默认valid_from时间的时区:我们使用了一个时间戳,该时间戳已经是UTC。

版本0.4:错误修复

修复与pyasn1较新版本的兼容性问题。

  • pyasn1中的BitString序列化更改了方法名称,旧的非官方序列化方法现在没有“_”是官方的。

版本0.3:错误修复

如果依赖项缺失,则version.py的导入失败。这阻止了在缺少依赖项的情况下通过pip install成功。

  • 在__init__.py中保护导入以防止因缺少依赖项而失败

版本0.2:次要功能添加

将示例从spkac.py的末尾移动到doctest中。API更改:set_email不再受支持。现在可以将扩展作为构造函数的无名参数提供。命名参数被视为结果的证书的主题参数。所有这些都在doctest中显示。

  • 删除set_email

  • 更改构造函数:允许将扩展作为参数,将主题参数作为关键字参数

  • 添加doctest

  • 修复setup.py以包含install_requires以自动安装所需包

  • 更容易导入:现在from pyspkac import SPKAC是有效的。

版本0.1:首次发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码分发

pyspkac-0.7.tar.gz (14.2 kB 查看哈希值)

上传时间 源代码

由以下组织支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面