自制CA证书,自制客户端,服务端证书

自制CA证书,客户端、服务端证书

参考资料:HTTPS证书生成原理和部署细节
废话不多讲,我们直入正题。
首先我假设你的系统已经安装了openssl。使用openssl version -a即可查看当前安装的版本。没有安装的请自行百度安装openssl教程。

1.创建目录并授予权限:

在这里插入图片描述
进入ca目录:cd ca
2. 为服务器端和客户端准备公钥、私钥:
① 生成服务器端私钥:

openssl genrsa -out server.key 1024

在这里插入图片描述
② 生成服务器端公钥:openssl rsa -in server.key -pubout -out server.pem
在这里插入图片描述
③ 生成客户端私钥:

openssl genrsa -out client.key 1024

在这里插入图片描述
④ 生成客户端公钥:openssl rsa -in client.key -pubout -out client.pem
在这里插入图片描述
3.生成 CA 证书
① 生成 CA 私钥:openssl genrsa -out ca.key 1024
在这里插入图片描述
② 生成请求文件:openssl req -new -key ca.key -out ca.csr
在这里插入图片描述

注意,这里的 Organization Name (eg, company) [Internet Widgits Pty Ltd]: 后面生成客户端和服务器端证书的时候也需要填写,不要写成一样的!!!

可以随意写如:myca, myserver, myclient。

然后 Common Name (e.g. server FQDN or YOUR name) []: 这一项,是最后可以访问的域名,我这里为了方便测试,写成 localhost
③ 生成ca证书:openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
在这里插入图片描述
4.生成服务器端证书和客户端证书
① 服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件:openssl req -new -key server.key -out server.csr
在这里插入图片描述
② 向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书:openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
在这里插入图片描述
③ 生成client端csr:openssl req -new -key client.key -out client.csr
在这里插入图片描述
④ client 端得到 CA 签名生成client端证书:openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt
在这里插入图片描述
我们的 ca 文件夹下已经有如下内容了:
在这里插入图片描述

### 百度搜索API证书验证方法及配置教程 在调用百度搜索API时,为了确保通信的安全性和数据传输的保密性,通常会采用SSL/TLS协议来加密连接并进行服务器身份验证。这涉及到客户端服务端提供的SSL证书的有效性校验。 对于启用HTTPS访问模式下的百度搜索API接口而言,支持SSL证书验证,并提供了快速和简便的方式来处理SSL/TLS连接问题[^1]。这意味着开发者可以通过设置HTTP库中的相应参数实现这一功能,在Python环境中可以借助`requests`库完成此操作: ```python import requests url = "https://api.baidu.com/some_endpoint" response = requests.get(url, verify=True) # 默认verify为True表示开启SSL认证 print(response.status_code) ``` 如果需要更细粒度地控制所使用的CA证书文件,则可通过指定路径的方式加载特定的信任根证书列表用于验证过程: ```python import requests url = "https://api.baidu.com/some_endpoint" ca_bundle_path = "/path/to/ca-bundle.crt" response = requests.get(url, verify=ca_bundle_path) print(response.status_code) ``` 此外,当遇到某些特殊场景下可能无法直接获取到有效的公共信任链时(例如内部测试环境),也可以通过创建自签名证书来进行本地调试工作。此时可利用OpenSSL工具集配合Shell脚本来自动化生成所需的各种密钥材料以及相应的X.509格式证书[^2]。 需要注意的是,在生产环境下应始终优先考虑使用由权威机构签发的标准数字证书而非自制版本,以保障系统的整体安全性水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值