windows创建本地SSL证书,适配ios强制支持https。

这篇博文中主要讲述如何在windows系统中创建本地SSL证书。

1.环境准备

1.1 系统环境:windows xp及以上
1.2 软件环境:openssl-0.9.8k_WIN32

下载地址1: https://www.openssl.org/source/

1.3 证书创建的具体过程
1.3.1 解压openssl-0.9.8k_WIN32.zip,进入解压目录的bin目录中,打开openssl.exe,以下的命令均在openssl.exe中执行。
1.3.2 生成私钥

使用openssl工具生成一个RSA私钥

genrsa -des3 -out server.key 2048

说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。 
注意:生成私钥,需要提供一个至少4位的密码。

1.3.3 生成CSR(证书签名请求)

生成私钥之后,便可以创建csr文件了。 
此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下:

req -new -key server.key -out server.csr

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。 

以下为样例:

Country Name (2 letter code) [AU]:CN 
State or Province Name (full name) [Some-State]:Beijing 
Locality Name (eg, city) []:Beijing 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios 
Organizational Unit Name (eg, section) []:info technology 
Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com 
Email Address []:liufan@joyios.com
1.3.4 删除私钥中的密码

在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下:

rsa -in server.key -out server_no_passwd.key

此时需要输入创建私钥时输入的密码 
这时候的bin目录下的文件应该是这样的 

1.3.5 生成自签名证书

如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。

需要注意的是,在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的。

命令行输入:

x509 -req -days 365 -in server.csr -signkey server_no_passwd.key -out server.crt

得到的server.crt就是我们需要的SSL证书了。 
说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: