#! /bin/env python
# -*- encoding:gbk -*-
"""
用于生成
WebService
使用的
CA
及并且签署证书
"""
import sys,shutil,os,subprocess,getpass
configure={"debug":False}
def quiet_run(cmd,argstr=None):
nf=file(os.devnull,"rw")
if configure["debug"]:
p=subprocess.Popen(cmd,stdin=subprocess.PIPE)
else:
p=subprocess.Popen(cmd,stdin=subprocess.PIPE,stdout=nf,stderr=nf)
if argstr is not None:
p.stdin.write(argstr)
p.stdin.write("\n")
p.stdin.flush()
p.wait()
def get_indentity():
"""
取得用户身份信息
"""
"
请输入你的身份信息,这些信息将被附加到证书上,以便于客户确认您的
身份
"
print "
只输入英文
"
identity={}
identity["C"]="CN"
identity["ST"]=raw_input("
请输入您的省份:
")
identity["L"]=raw_input("
请输入您的城市:
")
identity["O"]=raw_input("
请输入您的单位名称:
")
identity["OU"]=raw_input("
请输入您的部门名称:
")
identity["CN"]=raw_input("
请输入您的名字:
")
identity["EMAILADDRESS"]=raw_input("
请输入您的电子邮箱地址
:")
#
连接成
OpenSSL
要求的
X500
格式字符串
subj="".join(["/"+"=".join((key,identity[key])) for key in identity if len(identity[key])>0])
print "
您的身份认证信息是
%s"%subj
return subj
def create_ca():
#
取得用户身份
subj=get_indentity()
#
要求输入密码和证书文件名