如何curl一个受相互TLS(MTLS)保护的接口或者url
MTLS是一个相互TLS,和https不一样的是,mtls不仅是client端要校验service的证书 server同样需要校验client的证书,那么如何用curl来访问这样的一个url?
需要以下三个文件
- 属于签署服务器证书的CA的CA证书(如果它还没有包括在你的操作系统可信的证书中,也就是非will-konwn证书)
- client证书
- client key证书
然后使用以下命令:
……技术探索与开发实践:AI、云原生、全栈开发之路
MTLS是一个相互TLS,和https不一样的是,mtls不仅是client端要校验service的证书 server同样需要校验client的证书,那么如何用curl来访问这样的一个url?
需要以下三个文件
然后使用以下命令:
……如何将curl的命令转换为代码,首先打开浏览器的developer tools,先获取一个curl命令
如图所示,在network里面选择一个请求,并copy as curl
然后打开https://curlconverter.com/ 页面
将curl命令复制进去
curl命令:
curl 'https://blog.iamdev.cn/' \
-H 'authority: blog.iamdev.cn' \
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
-H 'accept-language: zh,en;q=0.9,zh-CN;q=0.8,ja;q=0.7,zh-TW;q=0.6' \
-H 'cache-control: max-age=0' \
-H 'cookie: _ga=GA1.1.937104759.1661133120; _ga_0WQ77K1FMC=GS1.1.1661224452.5.1.1661224453.59.0.0' \
-H 'dnt: 1' \
-H 'if-modified-since: Mon, 22 Aug 2022 14:22:43 GMT' \
-H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
-H 'sec-fetch-dest: document' \
-H 'sec-fetch-mode: navigate' \
-H 'sec-fetch-site: none' \
-H 'sec-fetch-user: ?1' \
-H 'upgrade-insecure-requests: 1' \
-H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36' \
--compressed
转换的python代码如下:
……