1.curl
curl工具类似于postman,什么时候使用curl而非postman呢?
当处于linux 环境或者远程登录服务器无法使用图形化工具时。
当需要编程实现n次curl接口时,可以通过写shell脚本中使用curl工具。
1.1 用法
curl可以用于测试http/https服务,查看服务端更多的信息,如ssl协议、证书、链路等信息
curl -X POST -d 'param1=xxx¶m2=xxx' http://xx.xx.xx:8080/path/
curl -k -E ./sslTestClient.p12:123456 -H 'Content-type:application/xml;charset=UTF-8' -d '<User><name>aaaa</name><age>10</age></User>' https://localhost:8085/user
curl -v https://www.baifubao.com/callback?cmd=1059&callback=phone&phone=xxxxxxxxx
选项 | 作用 |
---|---|
-X | 指定http method类型,后接GET、POST等 |
-d | 指定http请求体数据 后接'报文体' |
-H | 指定http请求头,后接'请求头' |
-k | 不校验服务端证书,永久信任服务端 |
-E | --cert 指定客户端证书,上例为指定p12证书库及其证书库密码 |
-v | 输出http详细请求和响应 包括头和体、cookie、ssl信息(协议版本、算法套件、证书校验)等 |
1.2 存在的问题
curl在携带表单数据时不会进行urlEncode,所以在存在特殊字符如+等时会出现问题
2.openssl
2.1 ssl服务
可以作为客户端进行ssl/https服务的连通性测试,如下命令可以获取服务端的服务端证书、证书链、TLS协议版本、算法套件、SSLSession信息等。
openssl s_client -connect xib03.test.xib.com.cn:443
2.2 证书管理
2.2.1 生成密钥
下面的命令会生成一对长度是2048的RSA非对称密钥,私钥存储在server.key、公钥存储在server.csr
openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr
2.2.2 生成证书库
根据生成的公私钥生成一个pfx证书库
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
openssl pkcs12 -export -out server.pfx -inkey rsa_private_key.pem -in rsa_public_key.pem
2.2.3 证书格式转换
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt