修复windows下Git Self Signed Certificate in Certificate Chain

修复windows下Git Self Signed Certificate in Certificate Chain,第1张

在新手使用git clone的时候,可能会遇到一下这个报错:

这时候比较简单粗暴的做法是直接不启用 SSL 认证,命令我为你准备好了

但这么一来就会带来安全风险。比较好的solution是为Git加上受信证书。下面我们来看看一个例子。

使用Chrome打开GitHub,点击代表安全认证的锁头图标。

在d出的菜单列表中,点击 Certificate

在列出的信息中,我们可以找到ca-bundle.crt文件的存放路径,这个例子中的路径是C:\Program Files (x86)\Git\mingw32\ssl\certs\ca-bundle.crt。让我们将其复制到新位置。我要把我的复制到C:\Users\Matt\ca-bundle.crt。您可以通过GUI或如下所示的终端来执行此 *** 作:

您将需要将Matt更改为您的用户名。

使用您喜欢的文本编辑器,您可以打开ca-bundle.crt复制的.cer文件和从浏览器导出的文件。将.cer包括----BEGIN CERTIFICATE---和在内的整个文本复制----END CERTIFICATE---到ca-bundle.crt文件底部。对.cer导出的所有文件执行此 *** 作.

我们还有最后一步要完成。回到终端中,将您复制的内容添加ca-bundle.crt到Git的配置中。

搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装

假设你已经有sudo权限的用户账号,下面,正式开始安装。

第一步,安装git:

$ sudo apt-get install git

第二步,创建一个git用户,用来运行git服务:

$ sudo adduser git

第三步,创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

第四步,初始化Git仓库

先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

$ sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

$ sudo chown -R git:git sample.git

第五步,禁用shell登录:

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

第六步,克隆远程仓库:

现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

$ git clone git@server:/srv/sample.git

Cloning into 'sample'...

warning: You appear to have cloned an empty repository.

剩下的推送就简单了。

管理公钥

如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。

这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。

管理权限

有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等 *** 作,达到权限控制的目的。Gitolite就是这个工具。

一、准备一台mac电脑

二、安装jenkins

打开终端运行:

brew install Jenkins

如果没有安装brew,请前往 brew 根据提示安装。

至少需要安装java1.8 ,如果没有安装会有提示, java

java安装完毕,链接 launchd 配置文件

启动jenkins

jenkins

打开Safari输入: http://localhost:8080/

就能看到jenkins已经运行起来了,如果你更换了端口就是你后来设置的端口。

接下来打开Jenkins后会让去一个填写password的页面如下图,存储password的地方就是图片上那行红色字体目录下,使用终端 cat + 红色字体路径就看到了

然后将我们得到的password输入到“Administrator password“中,即可进入如下界面,接着安装一些建议的插件(左边的),请等待,并全部安装成功在进行下一步。

安装完成之后,输入账户密码,登陆。开始jenkins

二、cocoapod环境安装

项目中一般会使用cocoapod管理第三方库。这个时候如果使用jenkins自动打包,就需要安装好cocoapod环境

三、jenkins使用

1、安装插件

Keychains and Provisioning Profiles Management

Xcode integration

在系统管理-> 插件管理中搜索插件

配置Keychains and Provisioning Profiles Management

请先配置好p12和Provisioning Profiles文件

需要上传login.keychain文件,该文件获取方法,在终端中输入

cd ~/Library/Keychains

将login.keychain文件upload之后,会出现下图的界面,根据需要将证书添加进去即可,但是由于macOS10.12以及以后的系统里面没有login.keychain文件,只有login.keychain-db,可以复制出来删除-db,upload就好了。(上传keychain,路径用自己改名后的那个)

然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload,然后结果如下图,蓝色框内的是固定格式的/Users/用户名/Library/MobileDevice/Provisioning Profiles

配置好之后保存即可

3.开始配置任务

创建一个任务,自由风格的任务

General

创建一个自由风格的任务,然后在选择丢弃旧的构建,至于天数和保持的最大个数,按照自己的需求来就好

源码管理

接下来是源码管理,在Repository URL里面添加你的git地址,我这里添加的是http的,如果你的项目是使用的ssh的,那么就将git开头的地址填写上,然后点击Add添加你的git帐号,如果你的事ssh的,将ssh的密匙填写上,具体的自己百度一下就好咯,我就不多写了,结果如图

构建触发器

接下来是构建触发器,也就是什么时候触发自动打包我这里填写的是H 20 * * 这个意思就是H小时然后,后面跟着数字,在后面就是日月年, 代表的我认为是每次都触发,也就是每天每月每年,但是Jenkins的时间不是绝对的,一般都是在随机在半点,也就是设置20点,大概会在20:30分左右会触发,如果需要两个时间,那么格式可以这样H 20,22 * * *结果如图

构建环境

在构建环境里面勾选Keychains and Code Signing Identities和Mobile Provisioning Profiles,Keychains and Code Signing Identities是打包需要的证书,Mobile Provisioning Profiles是打包需要的配置文件,都是可以自己选择的,我的如图

构建环境第一次Code Signing Identity和PP文件可能有些不一样。应用,保存一下就可以了。

添加脚本

执行cocoapod脚本必须要在第一个

执行打包并且上传到TestFlight脚本

关于exportOptionsPlist

请参考 exportOptionsPlist

把exportOptionsPlist添加到infoPlist同一层并push到git

关于

问题的解决。

证书不能使用自动管理,需要手动。

感谢


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11378155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存