#! /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 "请输入你的身份信息,这些信息将被附加到证书上,以便于客户确认您的身份"
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()
#要求输入密码和证书文件名