Gitlab企业版证书生成

发布时间:2021-05-28 20:00:56阅读:(598)

一、安装ruby环境以及gem包管理工具

  • 我的电脑是mac,所以无需安装
  • 安装ruby包依赖gitlab、gitlab-license、openssl
sudo gem install gitlab
sudo gem install gitlab-license
sudo gem install openssl

二、编写创建license的rube脚本,并生成license文件

文件内容如下:

createlicense.rb

require 'openssl'
require 'gitlab/license'

# 生成密钥对
key_pair = OpenSSL::PKey::RSA.generate(2048)

# 保存密钥对
File.open("license_key", "w") { |f| f.write(key_pair.to_pem) }

# 获取公钥
public_key = key_pair.public_key

# 保存公钥
File.open("license_key.pub", "w") { |f| f.write(public_key.to_pem) }

# 使用私钥初始化License
private_key = OpenSSL::PKey::RSA.new File.read("license_key")
Gitlab::License.encryption_key = private_key

# 生成license实例
license = Gitlab::License.new

# 补充license的一些信息
license.licensee = {
"Name" => "tester",
"Company" => "Google Inc",
"Email" => "test@163.com"
}

license.starts_at = Date.new(2021, 1, 1) # license 开始生效时间

license.expires_at = Date.new(2030, 12, 13) # license 到期时间

license.notify_admins_at = Date.new(2030, 11, 30) # license 管理员过期提醒时间

license.notify_users_at = Date.new(2030, 11, 30) # license 普通用户过期提醒时间

license.block_changes_at = Date.new(2031, 1, 31)

license.restrictions = {
active_user_count: 10000, # license 授权人数
plan: "ultimate" # 版本,可选为:starter、premium、ultimate
}

puts "License:"
puts license

# 导出license
data = license.export

puts "Exported license:"
puts data

# 将license保存到文件
File.open("GitLabBV.gitlab-license", "w") { |f| f.write(data) }

执行以上脚本,会生成三个文件

ruby createlicense.rb # 执行脚本
....

ls -l # 查看目录
GitLabBV.gitlab-license
createlicense.rb
license_key
license_key.pub

三、替换公钥及激活license

  • 将license_key.pub公钥内容替换到gitlab的/opt/gitlab/embedded/service/gitleb-rails/.license_encryption_key.pub中,然后重启gitlab,gitlab-ctl restart.
  • 重启完成后,将GitLabBV.gitlab-license文件导入gitlab激活页面即可完成激活

注意:重新生成license后,需要重新替换公钥

标签:Gitlab

上一篇:G1GC调优时遇到的坑

下一篇:

发表评论

评论列表(有0条评论598人围观)
暂无评论