info@ 使用OpenSSL来制作证书,在IIS中配置HTTPS(SSL)笔记
下载Win32编译的openssl版本0.9.8e.
1.获取IIS证书请求:打开IIS,右键单击【默认网站】,在【目录安全性】选项卡中点击【服务器证书】按钮,【下一步】,【新建证书】,【现在准备证书请求--下一步】,输入【名称】,输入【单位】和【部门】,输入【公用名称】,选择【国家】并输入【省】和【市县】并【下一步】,【下一步】,【下一步】,【完成】,IIS的证书请求已经获取,就是C:\certreq.txt。
这里请牢记输入的信息。
2.准备openssl工作环境:把openssl(编译后的版本)解压到D:\OpenSSL-0.9.8e\下,
在bin目录下建立目录demoCA,在demoCA下建立private和newcerts目录,
并新建index.txt,内容为空
如果没有serial文件,则到openssl网站上下载openssl的源文件,解压后,到apps\demoCA下,拷贝serial文件过来,两个目录两个文件都放到新建的 demoCA下。
3.生成自签名根证书:
openssl req -x509 -newkey rsa:1024 -keyout ca.key -out ca.cer -days 3650 -config D:\OpenSSL-0.9.8e\f
PEM pass phrase: password // 根证书私钥密码
Verifying - Enter PEM pass phrase: password
Country Name: CN // 两个字母的国家代号
State or Province Name: HB // 省份名称
Locality Name: WUHAN // 城市名称
Organization Name: Skyworth TTG // 公司名称
Organizational Unit Name: Service // 部门名称
Common Name: // 你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址)
Email Address: admin@ // Email地址
info@ 提醒:这时候,已经有ca.key:ca的私钥文件,ca.cer:ca的自签名根证书,certreq.txt:IIS的证书请求文件,三个文件。
现在将certreq.txt拷贝到bin目录下。
4.用CA证书ca.cer为IIS请求certreq.txt签发证书:server.pem:
openssl ca -in certreq.txt -out server.pem -cert ca.cer -keyfile ca.key -config D:\OpenSSL-0.9.8e\f -days 3650
Enter pass phrase for ca.key: password // 校验根证书私钥密码
Sign the certificate? [y/n]: y // 用CA根证书对服务器证书签字认证
1 out of 1 certificate requests certified, commit? [y/n] y // 提交证书
5.把server.pem转换成x509格式(可以不用转换):
openssl x509 -in server.pem -out server.cer
6.将生成的根证书ca.cert导入本地计算机,服务器端证书server.cer导入到IIS:
双击ca.cer文件,打开证书信息窗口,单击【安装证书】按钮,【下一步】,选择【将所有的证书放入下列存储区】,点击【浏览】按钮,选择【受信任的根证书颁发机构】,勾选“物理存储区”,然后存储在“受信任的根证书目录”下面的“本地计算机”子目录下,并点击【确定】,【下一步】,【完成】,【是】,根证书安装完毕!
切记: 要勾选“物理存储区”,然后存储在“受信任的根证书目录”下面的“本地计算机”子目录下
打开IIS,在【默认网站】上单击右键【属性】,在【目录安全性】选项卡中点击【服务器证书】按钮,【下一步】,选择【处理挂起的请求并安装证书】并【下一步】,正常情况下,您已经看到了文本框中就是D:\server.cer,如果不是,自己点【浏览】按钮去找并【下一步】,【下一步】,【完成】。
回到【目录安全性】选项卡在【安全通信】栏目中单击【编辑】按钮,勾上【要求安全通道(SSL)】,勾上【要求128位加密】,选择【要求客户端证书】,点击【确定】按钮。
7.制作客户端证书:
(1)生成客户端证书:
openssl req -newkey rsa:1024 -keyout clikey.pem -out clireq.pem -days 3650 -config D:\OpenSSL-0.9.8e\f
info@ 证书信息自己填写,有些内容要与根证书一致。
Enter PEM pass phrase: password // 客户端证书私钥密码
Verifying - Enter PEM pass phrase: password
Country Name: CN // 两个字母的国家代号
State or Province Name: HB // 省份名称
Locality Name: WUHAN // 城市名称
Organization Name: Skyworth TTG // 公司名称
Organizational Unit Name: Service // 部门名称
Common Name: client01 // 你的姓名(如:client01)
Email Address: client01@ // Email地址
a challenge password []: // 填不填随便,我不填
an optional company name []: // 填不填随便,我不填
(2)CA签发客户端证书:
openssl ca -in clireq.pem -out client.cer -cert ca.cer -keyfile ca.key -config D:\OpenSSL-0.9.8e\f
Enter pass phrase for ca.key: password // 校验根证书私钥密码
sign the certificate? [y/n] y // 用CA根证书对客户端证书签字认证
1 out 1 certificate requests certified,commit? [y/n] y // 提交证书
(3)将客户端证书转换为pk12格式:
openssl pkcs12 -export -clcerts -in client.cer -inkey clikey.pem -out client01.p12
Enter pass phrase for clikey.pem: password // 客户端证书私钥密码
Enter Export Password: // IE导入时的密码(可以不需要)
Verifying - Enter Export Password:
info@ 重复上述步骤,可以生成多个客户端证书
8.客户端安装信任的根证书和客户端证书:
打开internet explorer(IE),工具-internet选项-内容-证书,点选'个人'
再点击导入,把客户端证书client01.p12导入到个人组里(*****切记:别忘了扩展名是p12)。
这里还要输入刚才建立的输出密码password才能倒入呢。
接着,点选'受信任的根证书颁发机构',点击导入,把CA根证书ca.cer导入到受信任的根证书颁发机构里。
复制ca.cer文件到客户端,打开证书信息窗口,单击【安装证书】按钮,【下一步】,选择【将所有的证书放入下列存储区】,点击【浏览】按钮,选择【受信任的根证书颁发机构】,勾选“物理存储区”,然后存储在“受信任的根证书目录”下面的“本地计算机”子目录下,并点击【确定】,【下一步】,【完成】,【是】,根证书安装完毕!
切记: 要勾选“物理存储区”,然后存储在“受信任的根证书目录”下面的“本地计算机”子目录下
11.安装客户端证书:把bin目录下的client.p12复制到D:\并双击client.p12文件,【下一步】,【下一步】,输入客户端证书的密码并【下一步】,【下一步】,【完成】,【确定】。
到此,客户端的证书也已经安完毕。