使用双向认证增加git仓库安全性
双向认证是用户需要提供证书来访问服务器,没有证书的用户不允许访问服务器,并且在服务端可以实现吊销指定用户的证书来实现禁止用户访问。配置 https 双向认证会影响到使用 https 协议拉取和推送代码,以及 git lfs 的正常使用 (lfs 使用 https 协议),ssh 协议使用代码仓库不受影响。
配置双向认证
我是用的自签名证书,自签名证书的文档可以查看 制作和使用自签名证书 或者我的开源项目:https://github.com/iuxt/my_cert.git
服务器上的 nginx 上配置
1 | server { |
配置好之后,打开网页会提示:
操作系统信任 CA 证书
Windows
Windows 将证书导入到系统的个人分类下。
macOS
macOS– 待补充。
Linux
Debian 系 Linux:
1 | sudo cp cacert.crt /usr/local/share/ca-certificates/ |
RedHat 系 Linux:
1 | sudo cp cacert.crt /etc/pki/ca-trust/source/anchors/ |
信任完成后,浏览器重启后再次打开 git 网页:
选择证书,点击确定,就可以正常打开页面了。
Git 客户端配置
上面的配置,浏览器已经可以正常携带证书来访问指定的服务了,但是 git 客户端还不行,需要对 git 仓库进行配置。
1 | # 需要全局配置,增加 --global 参数。会写入到 ~/.gitconfig 中。 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
评论