操作系统导入CA公钥操作指南
前言
有些场景我们可能会使用到SSL证书自签名--比如我想使用一个很简短的域名在内网环境下使用,然而我又不是该域名的持有者。当然了,省钱才是自签证书的初衷!!!
Windows 10
1、将CA公钥文件保存在您的计算机上,通常为.pem、.crt或.cer格式的文件。
2、打开“控制面板”,然后选择“网络和 Internet”。
3、在“网络和 Internet”中,选择“Internet 选项”。
4、在“Internet 选项”窗口中,切换到“内容”选项卡,然后单击“证书”按钮。
5、 在“证书”窗口中,切换到“受信任的根证书颁发机构”选项卡,然后单击“导入”。
6、 在“证书导入向导”中,单击“下一步”,然后浏览到您保存的CA公钥文件并选择它,然后再次单击“下一步”。
7、在“受信任的根证书颁发机构”窗口中,选择“将证书存储在以下存储”中的“受信任的根证书颁发机构”,然后单击“下一步”。
8、 单击“完成”来导入CA公钥。
完成上述步骤后,系统将成功导入CA公钥。
git
部分Git CA与操作系统中的CA并不能通用,如windows平台的git bash,所以还是需要额外处理。
正常若使用自签证书会报以下错误:
Administrator@instance-ki7s636g MINGW32 ~
$ git clone https://xx.xx.com/dev/zhang3.git
Cloning into 'zhang3'...
fatal: unable to access 'https://xx.xx.com/dev/zhang3.git/': SSL certificate problem: unable to get local issuer certificate
方案1: 声明git CA[建议]
1、假设已经将CA证书放置操作系统中的 C盘分区的certs目录下面:
$ stat /c/certs/ca.crt
File: /c/certs/ca.crt
Size: 1489 Blocks: 4 IO Block: 65536 regular file
Device: 1e80f371h/511767409d Inode: 5629499534243284 Links: 1
Access: (0644/-rw-r--r--) Uid: (197108/Administrator) Gid: (197121/ UNKNOWN)
Access: 2024-03-08 19:59:49.740221700 +0800
Modify: 2024-03-08 19:59:49.740221700 +0800
Change: 2024-03-08 20:04:22.153981800 +0800
Birth: 2024-03-08 19:59:49.660222600 +0800
2、声明git程序CA证书位置
$ git config --global http.sslCAinfo /c/certs/ca.crt
方案2: 跳过证书合法校验
告诉git,不需要对证书的来源进行检验
$ git config --global http.sslVerify false
该方法吐血不建议。
Msys2
# cat > /etc/pki/ca-trust/source/anchors/vqiu-ca.pem<<
证书内容
EOF
# update-ca-trust
RHEL/CentOS
# cat > /etc/pki/ca-trust/source/anchors/vqiu-ca.pem<<EOF
证书内容
EOF
刷新生效
# update-ca-trust
Debian/Ubuntu
为了条目清晰--后续可以轻松地跟踪,创建一个对应的CA子目录
# mkdir /usr/local/share/ca-certificates/vqiu-ca
将证书复制对CA子目录
# cp gitee-ca.pem /usr/local/share/ca-certificates/vqiu-ca/ca.crt
执行update-ca-certificates
,将看到以下输出
# update-ca-certificates --fresh
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
若需要删除添加的CA证书,删除你自定义的根 CA 证书文件后,执行如下命令:
sudo update-ca-certificates --fresh
Alpine
Dockerfile
写法
FROM alpine:latest
RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
COPY ./ca.pem /usr/local/share/ca-certificates/gitee-CA.crt
RUN update-ca-certificates --fresh