curl 客户端证书 访问https站点
2013-01-11 11:58
696 查看
目前,大公司的OA管理系统(俗称内网),安全性要求较高,通常采用https的双向 认证模式。
首先,什么是https,简单的说就是在SSL协议之上实现的http协议(get、post等操作)。更多的介绍参看这里。
什么是双向认证模式?对于面向公众用户的https的网站,大部分属于单向认证模式,它不需要对客户端进行认证,不需要提供客户端的个人证书,例如https://www.google.com。而双向认证模式,为了验证客户端的合法性,要求客户端在访问服务器时,出示自己的client certificate。
现在介绍如何使用curl来访问双向认证的https站点。
一、准备工作
1、首先,因为要进行客户端认证,你应该具有了客户端的个人证书(对于公司内网,通常是由IT的管理员颁发给你的),只要你能够顺利的访问双向认证的https站点,你就具有了个人证书,它藏在浏览器上。我们要做的工作,只是把它从浏览器中导出来。从IE浏览器导出来的格式,通常为.pfx格式,从firefox导出来的格式通常为.p12格式,其实pfx=p12,它们是同一个东西,对于curl而言这种格式称为PKCS#12文件。
2、把p12格式转换为pem格式(假设你的p12文件名为:xxx.p12):
在执行过程中,可能需要你输入导出证书时设置的密码。执行成功后,我们就有了这些文件:client.pem——客户端公钥,key.pem——客户端私钥,或者二合一的all.pem。
3、确保你安装的curl版本正确(本人折腾了两天,全因为fedora13下的curl-7.20.1有问题,更新到curl-7.21.0.tar.gz问题解决)。
二、执行curl命令
1、使用client.pem+key.pem
curl -k --cert client.pem --key key.pem https://www.xxxx.com
2、使用all.pem
curl -k --cert all.pem https://www.xxxx.com
使用-k,是不对服务器的证书进行检查,这样就不必关心服务器证书的导出问题了。
首先,什么是https,简单的说就是在SSL协议之上实现的http协议(get、post等操作)。更多的介绍参看这里。
什么是双向认证模式?对于面向公众用户的https的网站,大部分属于单向认证模式,它不需要对客户端进行认证,不需要提供客户端的个人证书,例如https://www.google.com。而双向认证模式,为了验证客户端的合法性,要求客户端在访问服务器时,出示自己的client certificate。
现在介绍如何使用curl来访问双向认证的https站点。
一、准备工作
1、首先,因为要进行客户端认证,你应该具有了客户端的个人证书(对于公司内网,通常是由IT的管理员颁发给你的),只要你能够顺利的访问双向认证的https站点,你就具有了个人证书,它藏在浏览器上。我们要做的工作,只是把它从浏览器中导出来。从IE浏览器导出来的格式,通常为.pfx格式,从firefox导出来的格式通常为.p12格式,其实pfx=p12,它们是同一个东西,对于curl而言这种格式称为PKCS#12文件。
2、把p12格式转换为pem格式(假设你的p12文件名为:xxx.p12):
在执行过程中,可能需要你输入导出证书时设置的密码。执行成功后,我们就有了这些文件:client.pem——客户端公钥,key.pem——客户端私钥,或者二合一的all.pem。
openssl pkcs12 -in xxx.p12 -out client.pem -nokeys #客户端个人证书的公钥 openssl pkcs12 -in xxx.p12 -out key.pem -nocerts -nodes #客户端个人证书的私钥也可以转换为公钥与私钥合二为一的文件 openssl pkcs12 -in xxx.p12 -out all.pem -nodes #客户端公钥与私钥,一起存在all.pem中
3、确保你安装的curl版本正确(本人折腾了两天,全因为fedora13下的curl-7.20.1有问题,更新到curl-7.21.0.tar.gz问题解决)。
二、执行curl命令
1、使用client.pem+key.pem
curl -k --cert client.pem --key key.pem https://www.xxxx.com
2、使用all.pem
curl -k --cert all.pem https://www.xxxx.com
使用-k,是不对服务器的证书进行检查,这样就不必关心服务器证书的导出问题了。
相关文章推荐
- curl+个人证书(又叫客户端证书)访问https站点
- curl+个人证书(又叫客户端证书)访问https站点
- curl+个人证书(又叫客户端证书)访问https站点
- curl+个人证书(又叫客户端证书)访问https站点
- curl 证书访问https站点
- 客户端访问https站点(自定义证书)
- 客户端访问https站点(自定义证书)--续
- OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)
- Linux中使用curl命令访问https站点4种常见错误和解决方法
- Linux使用curl访问https站点时报错汇总
- CURL访问HTTPS证书登录
- 用curl访问HTTPS站点并登录(对HTTP返回的结果特别清楚)
- 如何通过手机客户端Android、Iphone 等访问要求使用客户端证书SSL加密的https网站
- Linux使用curl访问https站点时报错汇总
- HttpClient访问https站点证书加载问题
- CURL免证书访问https网站
- HTTPS的证书未经权威机构认证的情况下,访问HTTPS站点的两种方法
- Linux中使用curl命令访问https站点4种常见错误和解决方法
- HTTPS访问站点,出现证书问题解决(转载)
- Linux使用curl访问https站点时报错汇总