httpclient访问https相关问题汇总
客户端如何使用httpclient向https服务器发送数据(unable to find valid certification path to requested target):
http://www.open-china.net/blog/73709.html
这里Subject的cn要与访问的地址一致,即要使用域名不能使用IP访问。当然制作证书时也可以添加subject alternative names 。
?
资料参考:http://hi.baidu.com/songzongquan/blog/item/0fe32e668741522eab184ce4.html
如:makecert -n "CN=木炭;O=激情燃烧的木炭" -sv root.pvk -b 01/01/2001 -e 12/31/2100 -a sha1 -l "http://www.woodcoal.cn/utils/search.html?wd=ca&click=1 " -r root.cer
2、创建二级证书
makecert -sv 二级证书私钥.pvk -iv 根证书私钥.pvk -ic 根证书公钥.cer -n "CN=二级证书名称" -b 开始时间 -e 截止时间 -a 算法 -l "你的与证书相关的网址" 二级证书公钥.cer
如:makecert -sv woodcoal.pvk -iv root.pvk -ic root.cer -n "CN=木炭测试;O=激情燃烧的木炭" -b 01/01/2001 -e 12/31/2100 -a sha1 -l?"http://www.woodcoal.cn/utils/search.html?wd=ca&click=1 "?woodcoal.cer
注意:
运行后提示输入密码,设置密码或留空均可。制作二级证书时颁发者密码为根证书的密码。根证书加入“受信任的根证书颁发机构”后,证书签名的程序或服务器才能显示完整的颁发者名称。只有根证书加入“受信任的根证书颁发机构”时,二级证书才能显示完整,否则显示不能验证该证书。使用说明:
证书创建工具生成仅用于测试目的的 X.509 证书。它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。
Makecert.exe 包含基本选项和扩展选项。基本选项是最常用于创建证书的选项。扩展选项提供更多的灵活性。
makecert [options] outputCertificateFile
outputCertificateFile :测试 X.509 证书要写入的 .cer 文件的名称。
基本选项
选项说明-n x509name 指定主题的证书名称。此名称必须符合 X.500 标准。最简单的方法是在双引号中指定此名称,并加上前缀?CN= ;例如,"CN=myName "。-pe 将所生成的私钥标记为可导出。这样可将私钥包括在证书中。-sk keyname 指定主题的密钥容器位置,该位置包含私钥。如果密钥容器不存在,系统将创建一个。-sr ?location 指定主题的证书存储位置。Location ?可以是?currentuser (默认值)或localmachine 。-ss store 指定主题的证书存储名称,输出证书即存储在那里。-# ?number 指定一个介于 1 和 2,147,483,647 之间的序列号。默认值是由 Makecert.exe 生成的唯一值。-$ ?authority 指定证书的签名权限,必须设置为?commercial (对于商业软件 发行者使用的证书)或?individual (对于个人软件 发行者使用的证书)。-? 显示此工具的命令语法和基本选项列表。-! 显示此工具的命令语法和扩展选项列表。?
扩展选项
选项说明-a ?algorithm 指定签名算法。必须是?md5 (默认值)或?sha1 。-b mm/dd/yyyy 指定有效期的开始时间。默认为证书的创建日期。-cy certType 指定证书类型。有效值是?end (对于最终实体)和?authority (对于证书颁发机构)。-d name 显示主题的名称。-e mm/dd/yyyy 指定有效期的结束时间。默认为 12/31/2039 11:59:59 GMT。-eku oid [,oid ]将用逗号分隔的增强型密钥用法对象标识符 (OID) 列表插入到证书中。-h ?number 指定此证书下面的树的最大高度。-ic ?file 指定颁发者的证书文件。-ik keyName 指定颁发者的密钥容器名称。-iky keytype 指定颁发者的密钥类型,必须是?signature 、exchange ?或一个表示提供程序类型的整数。默认情况下,可传入?1 ?表示交换密钥,传入?2 ?表示签名密钥。-in? name 指定颁发者的证书公用名称。-ip provider 指定颁发者的 CryptoAPI 提供程序名称。-ir ?location 指定颁发者的证书存储位置。Location ?可以是?currentuser (默认值)或?localmachine 。-is store 指定颁发者的证书存储名称。-iv pvkFile 指定颁发者的 .pvk 私钥文件。-iy pvkFile 指定颁发者的 CryptoAPI 提供程序类型。-l link 到策略信息的链接(例如,一个 URL)。-m ?number 以月为单位指定证书有效期的持续时间。-nscp 包括 Netscape 客户端身份验证扩展。-r 创建自签署证书。-sc ?file 指定主题的证书文件。-sky keytype 指定主题的密钥类型,必须是?signature 、exchange ?或一个表示提供程序类型的整数。默认情况下,可传入?1 ?表示交换密钥,传入?2 ?表示签名密钥。-sp provider 指定主题的 CryptoAPI 提供程序名称。-sv pvkFile 指定主题的 .pvk 私钥文件。如果该文件不存在,系统将创建一个。-sy ?type 指定主题的 CryptoAPI 提供程序类型。?
一般的数字证书产品的主题通常含有如下字段:
公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端证书则为证书申请者的姓名;单位名称 (Organization Name) :简称:O 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端单位证书则为证书申请者所在单位名称;证书申请单位所在地: 所在城市 (Locality) 简称:L 字段所在省份 (State/Provice) 简称:S 字段所在国家 (Country) 简称:C 字段,只能是国家字母缩写,如中国:CN其他 一些字段:
电子邮件 (Email) 简称:E?字段多个姓名字段 简称:G?字段介绍:Description 字段电话号码:Phone 字段,格式要求 + 国家区号 城市区号 电话号码,如: +86 732 88888888地址:STREET? 字段邮政编码:PostalCode 字段显示其他 内容 简称:OU 字段