资源描述
卫生部办公厅
2010年4月30日
卫生系统电子认证服务体系系列规范
-卫生系统数字证书服务管理平台接入规范
(试行)
目 录
1 范围 1
2 系统接入总体要求 1
3 CA系统功能要求 1
4 CA系统接入接口要求 2
4.1 证书信息同步接口 2
4.2 黑名单信息同步接口 4
4.3 查询证书信息接口 8
5 WSDL文件 11
5.1 WSDL原文 11
附录 (资料性附录) 名词解释 18
1 范围
根据《卫生系统电子认证服务管理办法(试行)》相关要求,电子认证服务机构在开展服务前须接入卫生部数字证书服务管理系统。本规范描述了电子认证服务机构的CA系统(简称CA系统)接入卫生部数字证书服务管理系统的总体要求、CA系统功能要求以及CA系统接入接口要求等。
本规范用于指导相关电子认证服务机构将CA系统接入卫生部数字证书服务管理系统,实现系统接入过程标准化及安全控制,实现数字证书服务的统一管理。
2 系统接入总体要求
根据《卫生系统电子认证服务管理办法(试行)》的规定,卫生部将建设集中的数字证书服务管理系统,用于卫生系统内所有证书用户信息的收集、查询、统计和分析,以及进行用户意见收集、服务质量监督等管理工作。
卫生部通过数字证书服务管理系统对在卫生系统领域开展电子认证服务的CA机构实行接入控制及服务管理。拟为卫生系统领域提供服务的电子认证服务机构,须符合《卫生系统电子认证服务管理办法(试行)》的相关要求,将CA系统接入到卫生部数字证书服务管理系统。
接入卫生部数字证书服务管理系统的电子认证服务机构应符合以下要求:
1) 电子认证服务机构的CA系统应符合《证书认证系统密码及其相关安全技术规范》。
2) 电子认证服务机构的CA系统应遵循《电子政务电子认证体系建设总体规划》(国密局联字[2007]2号)中关于电子认证体系建设的相关要求,符合《电子政务电子认证服务管理办法》(国密局发[2009]7)相关要求。
3) 电子认证服务机构的CA系统签发的证书应遵循《卫生系统数字证书格式规范》,使用的证书介质应符合《卫生系统数字证书介质技术规范》,开展证书应用集成工作时应遵循《卫生系统数字证书应用集成规范》。
4) 电子认证服务机构的CA系统的功能应符合本文第3章要求。
5) 电子认证服务机构的CA系统应遵循本文第4章的接口要求,将CA系统中的数字证书和黑名单及时同步到卫生部数字证书服务管理系统。
3 CA系统功能要求
电子认证服务机构的CA系统须具备如下基本功能:
1) 证书申请:
CA系统签发的证书类型应包括:内部机构证书、内部工作人员证书、内部设备证书、外部机构证书、外部个人证书和外部设备证书。以上各类证书格式须符合《卫生系统数字证书格式规范》的要求。对内部用户提供服务时,为提高证书办理效率,CA系统应提供批量录入和批量审核的功能。
2) 证书更新:
CA系统应提供证书更新功能。证书更新后,新证书的有效期须延长,密钥须更换,证书的实体唯一标识须保持不变。
3) 证书解锁:
证书保护口令连续10次输入错误,证书介质须自动锁死。CA系统应提供证书解锁功能,用户可重新设置新的证书保护口令。
4) 证书吊销:
CA系统应提供证书吊销功能。证书吊销后,CA系统应实时签发黑名单,并将黑名单发布给相关的卫生信息系统和卫生部数字证书服务管理系统。
5) 密钥恢复:
CA系统应提供加密密钥和加密证书的恢复功能。密钥恢复后,用户可恢复原有的加密证书和加密密钥,证书和密钥的存储格式应与原有证书一致,保障用户的历史密文信息可以完成解密操作。
6) 证书信息发布:
CA系统应提供将数字证书申请、更新和吊销等相关信息同步到卫生部数字证书服务管理系统的功能。数据同步时,CA系统应遵循和调用证书服务管理系统的证书信息同步接口(详见4.1节)。
CA系统应提供证书信息发布功能,外部证书用户的发布按照批准的电子认证业务规则(CPS)规定的策略执行,内部用户证书在对外发布前应经用户管理单位审定。
4 CA系统接入接口要求
电子认证服务机构的CA系统调用数字证书服务管理系统提供的数据同步接口,实现与卫生部数字证书服务管理系统之间数字证书和黑名单的信息同步等,接口的函数原型及功能描述请参照以下章节描述。
4.1 证书信息同步接口
函数原型:public string[] CertRequestInfoSyn(CUserInfo userinfo, string strSignValue)。
功能描述:CA系统调用该接口,将证书数据同步到卫生部数字证书服务管理系统。
输入参数:CUserInfo:需要同步的证书数据,详见表1说明。
strSignValue:使用CA系统的服务器证书对CUserInfo域的数据组合进行的数字签名,数据原文采用XML数据标准格式,示例代码CreateXML.java见附录。签名算法采用sha1RSA,数字签名的数据格式为BASE64编码格式。
返回值:详见表2说明。
表 1 CUserInfo证书信息表
序号
属性
属性名称
是否为空
数据类型
备注
1.
TradeType
业务类型
N
String
1:证书首次发放
2:证书更新
3:证书吊销
2.
CaInfo
CA身份标识
N
String
CA身份标识,CA机构的营业许可证后4位数字
3.
CertType
证书类型
N
String
工作人员证书:G;
内部机构证书:U;
内部设备证书:S
外部个人证书:P
外部机构证书:J
外部设备证书:W
4.
UserId
用户实体唯一标识
N
String
CA系统中的用户ID号,即证书实体唯一标识
5.
CommonName
证书主体
N
String
用户姓名或单位名称,该内容为签发的证书主题名称
6.
PaperType
证件类型
N
String
组织机构代码:JJ
工商营业执照:GS
税务登记证:SW
身份证:SF
军官证:JG
护照:HZ
回乡证:HX
其他:QT
7.
PaperID
证件号码
N
String
个人证书和工作人员证书填身份证号码、军官证、护照或其他;
机构证书和设备证书填组织机构代码、工商营业执照、税务登记证或其他。
8.
ProvinceName
省份名称
N
String
省份名称必须有
9.
LocalityName
城市名称
N
String
城市名称必须有
10.
UnitName
单位名称
N
String
单位名称必须有
11.
DepartmentName
部门名称
N
String
部门名称
12.
PostalAddress
邮政地址
Y
String
邮政地址
13.
PostalCode
邮政编码
Y
String
应为6位数字
14.
AgentMan
联系人
Y
String
联系人
15.
TelephoneNumber
用户电话号码
Y
String
单位证书时,应为单位的固定电话
16.
Fax
用户传真号码
Y
String
用户传真号码
17.
E_mail
用户电子邮件
Y
String
可选项,单位证书时,与经办人信息一致。
18.
MobileTelephone
用户手机号码
Y
String
可选项,单位证书时,与经办人信息一致。
19.
EncCertData
加密证书
Y
String
用户证书,BASE64编码(加密证书和签名证书不能同时为空!)
20.
SignCertData
签名证书
Y
String
用户证书,BASE64编码(加密证书和签名证书不能同时为空!)
21.
TransName
经办人姓名
Y
String
单位证书时,非空
22.
TransTel
经办人电话
Y
String
单位证书时,非空
23.
TransEmail
经办人电子邮件
Y
String
单位证书时,非空
24.
TransMobile
经办人手机号码
Y
String
单位证书时,非空
25.
TransPertype
经办人证件类型
Y
String
身份证:SF
军官证:JG
护照:HZ
回乡证:HX
其他:QT
26.
TransPaperID
经办人证件号码
Y
String
填身份证号码、军官证、护照或其他证件号码
27.
TradeTime
CA系统提交数据时间
N
String
CA系统提交时间,格式如:20071120133456
表 2 证书同步接口返回值说明表
序号
属性
属性名称
是否为空
数据类型
1.
ErrorCode
返回代码
N
0:成功,其他值:失败(值为错误号)
EC301:验证数据签名失败
EC302:检查用户录入数据完整性错误
EC303:该用户发放数据已经同步成功
EC520:保存数据出现异常
2.
Time
业务系统交易时间
N
返回给CA系统,格式如:20071120133456
3.
strRetSignValue
签名值
N
接收端对返回代码ErrorCode和时间Time的数据组合进行的数字签名。签名原文的数据格式是:ErrorCode +“,”+ Time
证书信息同步接口XML格式定义如下:
注:下文中的所有“CAURL”代表电子认证服务机构的服务网站URL,如。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="CAURL" xmlns:types="CAURLencodedTypes" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<types:CredentialSoapHeader>
<UserName xsi:type="xsd:string">string</UserName>
<PassWord xsi:type="xsd:string">string</PassWord>
</types:CredentialSoapHeader>
</soap:Header>
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:CertRequestInfoSyn xmlns:q1="CAURL/SU">
<userinfo href="#id1" />
<strSignValue xsi:type="xsd:string">string</strSignValue>
</q1:CertRequestInfoSyn>
<types:CUserInfo id="id1" xsi:type="types:CUserInfo" xmlns:types="http://bean.ca.org">
<TradeType xsi:type="xsd:string">string</TradeType>
<CaInfo xsi:type="xsd:string">string</CaInfo >
<CertType xsi:type="xsd:string">string</CertType >
<UserId xsi:type="xsd:string">string</UserId>
<CommonName xsi:type="xsd:string">string</CommonName>
<PaperType xsi:type="xsd:string">string</PaperType>
<PaperID xsi:type="xsd:string">string</PaperID>
<ProvinceName xsi:type="xsd:string">string</ProvinceName>
<LocalityName xsi:type="xsd:string">string</LocalityName>
<UnitName xsi:type="xsd:string">string</UnitName>
<DepartmentName xsi:type="xsd:string">string</DepartmentName>
<PostalAddress xsi:type="xsd:string">string</PostalAddress>
<PostalCode xsi:type="xsd:string">string</PostalCode>
<AgentMan xsi:type="xsd:string">string</AgentMan >
<TelephoneNumber xsi:type="xsd:string">string</TelephoneNumber>
<Fax xsi:type="xsd:string">string</Fax >
<E_mail xsi:type="xsd:string">string</E_mail>
<MobileTelephone xsi:type="xsd:string">string</MobileTelephone>
<EncCertData xsi:type="xsd:string">string</EncCertData>
<SignCertData xsi:type="xsd:string">string</SignCertData>
<TransName xsi:type="xsd:string">string</TransName >
<TransTel xsi:type="xsd:string">string</TransTel >
<TransEmail xsi:type="xsd:string">string</TransEmail >
<TransMobile xsi:type="xsd:string">string</TransMobile >
<TransPertype xsi:type="xsd:string">string</TransPertype >
<TransPaperID xsi:type="xsd:string">string</TransPaperID >
<TradeTime xsi:type="xsd:string">string</TradeTime >
</types:CUserInfo>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="CAURL" xmlns:types="CAURLencodedTypes" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q4:CertRequestInfoSynResponse xmlns:q4="CAURL/SU">
<CertRequestInfoSynResult href="#id1" />
</q4:CertRequestInfoSynResponse >
<soapenc:Array id="id1" soapenc:arrayType="xsd:string[3]">
<Item>string</Item>
<Item>string</Item>
<Item>string</Item>
</soapenc:Array>
</soap:Body>
</soap:Envelope>
4.2 黑名单信息同步接口
函数原型:public string[] CrlInfoSyn(CCrlInfo crlrinfo, string strSignValue)
功能描述:CA系统调用该接口,将黑名单数据同步到卫生部数字证书服务管理系统。
输入参数:CCrlInfo:黑名单数据,具体内容见表3说明;
strSignValue:使用CA系统服务器证书对CCrlInfo域的数据进行的数字签名,数据原文采用XML数据标准,示例代码CreateXML.java见附录。签名算法采用sha1RSA,数字签名的数据格式为BASE64编码格式。
返回值:见表4说明。
表3 黑名单信息表
序号
属性
属性名称
是否为空
数据类型
备注
1.
CaName
CA身份标识
N
String
电子认证服务机构身份标识,由卫生部数字证书服务管理系统统一分配。
2.
CrlName
CRL别名
N
String
针对一个CA机构下多个CA证书链,对应多个CRL文件,通过CRLName进行区分。CRLName参数可使用CRL颁发者的通用名(即CN)。
3.
CrlData
本次传输的黑名单数据
N
String
黑名单(BASE64编码)(最大不超过400K)
4.
Num
传输序号
N
String
不大于allNum
5.
allNum
传输的总次数
N
String
6.
TradeTime
CA系统交易时间
N
String
CA系统提交时间,格式如:20100520133456
表 4 黑名单同步接口返回值表
序号
属性
属性名称
是否为空
数据类型
备注
1.
ErrorCode
错误代码
N
String
0:成功;
其他值:失败
错误代码如下:
EC301:验证数据签名失败
EC302:该黑名单已经同步成功
EC303:保存数据出现异常
EC304:超时
2.
TradeEndTime
数据同步完成时间
N
String
返回给CA系统,格式为YYMMDDHHMMSSZ,如:20100520133456
3.
strRetSignValue
返回的签名子
N
String
接收端对返回数据的签名值(Base64编码)。原文数据格式:ErrorCode+“,”+TradeEndTime。
黑名单信息接口XML格式定义如下:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="CAURL" xmlns:types="CAURL/encodedTypes" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<types:CredentialSoapHeader>
<UserName xsi:type="xsd:string">string</UserName>
<PassWord xsi:type="xsd:string">string</PassWord>
</types:CredentialSoapHeader>
</soap:Header>
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:CrlInfoSyn xmlns:q1="CAURLSU">
<userinfo href="#id1" />
<strSignValue xsi:type="xsd:string">string</strSignValue>
</q1:CrlInfoSyn>
<types:CCrlInfo id="id1" xsi:type="types:CCrlInfo" xmlns:types="http://bean.ca.org">
<CaName xsi:type="xsd:string">string</CaName >
<CrlName xsi:type="xsd:string">string</CrlName>
<CrlData xsi:type="xsd:string">string</CrlData >
<num xsi:type="xsd:string">string</num >
<allNum xsi:type="xsd:string">string</allNum >
<TradeTime xsi:type="xsd:string">string</TradeTime >
</types:CCrlInfo>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="CAURL" xmlns:types="CAURLencodedTypes" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q4:CrlInfoSynResponse xmlns:q4="CAURLSU">
<CrlInfoSynResult href="#id1" />
</q4:CrlInfoSynResponse>
<soapenc:Array id="id1" soapenc:arrayType="xsd:string[3]">
<Item>string</Item>
<Item>string</Item>
<Item>string</Item>
</soapenc:Array>
</soap:Body>
</soap:Envelope>
4.3 查询证书信息接口
函数原型:public CCertInfo GetSingleCertInfo(string paperType,string paperID,
string commonName, string caName, string strSignValue)
功能描述:CA系统调用该接口,获取该证书是否存在的详细信息。
输入参数:paperType:证件类型;paperID:证件号码;
commonName:用户姓名或单位名称,该内容为签发的证书主题名称;
caName: 由卫生部数字证书服务管理系统统一分配
strSignValue:使用CA系统服务器证书对三个参数的数据进行的数字签名,数据原文采用XML数据标准,示例代码CreateXML.java见附录。签名算法采用sha1RSA,数字签名的数据格式为BASE64编码格式。
返回值:见表5说明。
表5查询证书信息接口返回值表
序号
属性
属性名称
是否为空
数据类型
备注
1.
CaName
证书的颁发者
N
String
颁发者(电子认证服务机构身份标识,由卫生部数字证书服务管理系统统一分配)
2.
CommonName
证书主体
N
String
用户姓名或单位名称,该内容为签发的证书主题名称
3.
PaperType
证件类型
N
String
组织机构代码:JJ
工商营业执照:GS
税务登记证:SW
身份证:SF
军官证:JG
护照:HZ
回乡证:HX
其他:QT
4.
PaperID
证件号码
N
String
个人证书和工作人员证书填身份证号码、军官证、护照或其他;
机构证书和设备证书填组织机构代码、工商营业执照、税务登记证或其他。
5.
BeginDate
开始日期
N
String
证书有效期的开始日期
6.
EndDate
截止日期
N
String
证书有效期的截止日期
7.
CertType
证书类型
N
String
工作人员证书:G;
内部机构证书:U;
内部设备证书:S
外部个人证书:P
外部机构证书:J
外部设备证书:W
8.
UserId
用户实体唯一标识
N
String
CA系统中的用户ID号,即证书实体唯一标识
9.
TradeTime
CA系统提交数据时间
N
String
CA系统提交时间,格式如:20100520133456
10.
CertUniuqied
证书序列号
N
String
证书序列号
(如果是双证书返回的是加密证书和签名证书组成的字符串,并用英文的逗号分隔)
11.
ErrorCode
错误代码
N
String
0:没有找到该证书信息;
其他值:失败
错误代码如下:
EC301:验证数据签名失败
EC302:该证书信息已经存在,且是有效证书。
EC303:查询数据出现异常
EC304:超时
EC305:该证书信息已经存在,且证书过期。
EC306:该证书信息已经存在,且证书被吊销。
12.
TradeEndTime
查询数据完成时间
N
String
返回给CA系统,格式为YYMMDDHHMMSSZ,如:20100520133456
13.
strRetSignValue
返回的签名值
N
String
接收端对返回数据的签名值(Base64编码)。原文数据格式:ErrorCode+“,”+TradeEndTime。
查询证书基本信息接口XML格式定义如下:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="CAURL" xmlns:types="CAURL/encodedTypes" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<types:CredentialSoapHeader>
<UserName xsi:type="xsd:string">string</UserName>
<PassWord xsi:type="xsd:string">string</PassWord>
</types:CredentialSoapHeader>
</soap:Header>
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:GetSingleCertInfo xmlns:q1="CAURLSU">
<PaperType xsi:type="xsd:string">string</PaperType>
<PaperID xsi:type="xsd:string">string</PaperID>
<CommonName xsi:type="xsd:string">string</CommonName>
<CaName xsi:type="xsd:string">string</CaName >
<StrSignValue xsi:type="xsd:string">string</StrSignValue>
</q1:GetSingleCertInfo>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="CAURL" xmlns:types="CAURLencodedTypes" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q4:GetSingleCertInfoResponse xmlns:q4="CAURLSU">
<GetSingleCertInfoResult href="#id1" />
</q4:GetSingleCertInfoResponse>
<types:CCertInfo id="id1" xsi:type="types:CCertInfo" xmlns:types="http://bean.ca.org">
<UserID xsi:type="xsd:string">string</UserID >
<BeginDate xsi:type="xsd:string">string</BeginDate>
<CaName xsi:type="xsd:string">string</CaName>
<CertType xsi:type="xsd:string">string</CertType >
<CertUniuqied xsi:type="xsd:string">string</CertUniuqied>
<CommonName xsi:type="xsd:string">string</CommonName>
<PaperType xsi:type="xsd:string">string</PaperType>
<PaperID xsi:type="xsd:string">string</PaperID>
<EndDate xsi:type="xsd:string">string</EndDate>
<ErrorCode xsi:type="xsd:string">string</ErrorCode>
<StrRetSignValue xsi:type="xsd:string">string</StrRetSignValue>
<TradeEndTimexsi:type="xsd:string">string</TradeEndTime>
<TradeTime xsi:type="xsd:string">string</TradeTime >
</types:CCertInfo>
</soap:Body>
</soap:Envelope>
5 WSDL文件
5.1 WSDL原文
请参看以下是原文,供编码使用。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="" xmlns:intf="http
展开阅读全文