Mar*_*ter 13 git ssl github certificates
通过 HTTPS 访问 Github 时出现以下错误:
error: server certificate verification failed.
CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Run Code Online (Sandbox Code Playgroud)
这是因为我在/etc/ssl/certs/
. 我知道如何解决这个问题。我可以ca-certificates
从 Debian 存储库安装该软件包。然而,问题是这将安装我不一定要接受/信任的所有证书(数千个)。
如何仅为 Github 安装证书?
在另一台机器上,ca-certificates
已经安装了软件包并且 git 可以工作,我注意到其中的一些证书/etc/ssl/certs/
是每个文件一个证书,而其他证书是一个文件中的多个证书。包含 Github 证书的特定文件包含/etc/ssl/certs/ca-certificates.crt
150 多个其他证书:
$ grep 'BEGIN CERTIFICATE' /etc/ssl/certs/ca-certificates.crt | wc -l
159
Run Code Online (Sandbox Code Playgroud)
我如何才能找到这 159 个证书中的哪一个是我需要的?(除了蛮力 - 将文件切成两半并检查两半,重复while n > 1
)。
小智 13
为了访问你的 Github,你需要通过 ssh 来完成。所以你需要将你的 ssh 公钥添加到 github。之后,您就可以通过 ssh 访问 github,即:
git init git@github.com:yourname/yourrepo.git
Run Code Online (Sandbox Code Playgroud)
另请参阅:Github:生成 ssh 密钥,WikiHow
[编辑#1]
没有证书检查:
GIT_SSL_NO_VERIFY=true git clone https://github.com/p/repo.git
Run Code Online (Sandbox Code Playgroud)
或认证
GIT_SSL_NO_VERIFY=true git clone https://user@pass:github.com/p/repo.git
Run Code Online (Sandbox Code Playgroud)
对我来说仍然不清楚你在要求什么,因为你知道安装 ca-certificates 可以解决这个问题。
[编辑#2]
好的,另一个问题是
如何只拥有通过 https 访问 github.com 所需的证书
打开浏览器并导航到https://github.com/。点击左边的绿色名称,https://
然后点击
Certificates
。在Details
选项卡上,您将看到证书链,即:
DigiCert ...
DigiCert ...
github.com ...
Run Code Online (Sandbox Code Playgroud)将每个 DigiCert 证书导出到一个文件。
/etc/ssl/certs/
c_rehash
which cat 所有证书ca-certificates.crt
正如我所说,我不是这种行为的朋友,因为 github 可以随时更改 CA,因此它总是会导致额外的工作。
归档时间: |
|
查看次数: |
53488 次 |
最近记录: |