Linux下使用openssl为harbor制作证书

news2024/12/26 14:06:49

openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。
一、安装

检查是否自带如没有进行安装
[root@192 ~]# openssl version
OpenSSL 1.1.1m  14 Dec 2021
yum -y install openssl

二、生成CA私钥文件

[root@my zhengshu]# openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
....................................................++++
.......++++
e is 65537 (0x010001)
生成一个4096位的RSA私钥。

三、生成 CA 证书(域名方式)

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=hubei/L=wuhan/O=test/OU=test/CN=my.harbor.com" \
 -key ca.key \
 -out ca.crt

四、生成服务器证书
1、先生成私钥:

openssl genrsa -out my.harbor.com.key 4096

2、生成证书签名请求:

openssl req -sha512 -new \
    -subj "/C=CN/ST=hubei/L=wuhan/O=test/OU=test/CN=my.harbor.com" \
    -key my.harbor.com.key \
    -out my.harbor.com.csr

3、生成 x509 v3扩展文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=my.harbor.com
DNS.2=my.harbor
DNS.3=harbor
EOF
无论使用FQDN还是IP地址连接到Harbor主机,都必须创建此文件,以便可以为Harbor主机生成符合主题备用名称(SAN)和x509 v3的证书扩展要求。替换DNS条目以反映所在域

4、使用该v3.ext文件为您的Harbor主机生成证书

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in my.harbor.com.csr \
    -out my.harbor.com.crt

五、配置到服务
1、将服务器证书和密钥复制到 Harbor主机证书文件夹中

cp my.harbor.com.crt /data/cert/
cp my.harbor.com.key /data/cert/

2、转换my.harbor.com.crt为my.harbor.com.cert,供Docker使用

openssl x509 -inform PEM -in my.harbor.com.crt -out my.harbor.com.cert

3、将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中

cp my.harbor.com.cert /etc/docker/certs.d/my.harbor.com/
cp my.harbor.com.key /etc/docker/certs.d/my.harbor.com/
cp ca.crt /etc/docker/certs.d/my.harbor.com/

4、重启docker

systemctl restart docker

5、运行 prepare 脚本以启用 HTTPS

./prepare

6、Harbor正在运行,需要先停止并删除现有实例

docker-compose down -v

7、重新启动Harbor

docker-compose up -d

8、登录验证
在这里插入图片描述

本次配置到harbor里可以配置到Nginx、Apache等服务,登录harbor可以看到以下提示,标记为不信任,属于正常访问现象。
在这里插入图片描述
六、证书到期时间查看

[root@192 ssl]# openssl x509 -in server.crt -noout -dates
notBefore=Oct 18 11:51:17 2023 GMT
notAfter=Oct 17 11:51:17 2024 GMT

附:使用ip方式生成证书
1、生成CA证书私钥:

openssl genrsa -out ca.key 4096

2、生成CA证书

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.100.20" \
 -key ca.key \
 -out ca.crt
 
 #  req  产生证书签发申请命令
 # -x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
 # -new  生成证书请求
 # -key  指定私钥文件
 # -nodes 表示私钥不加密
 # -out   输出
 # -subj 指定用户信息
 # -days 有效期

3、生成harbor服务器证书:

openssl genrsa -out 192.168.100.20.key 4096

4、生成证书签名请求:

openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.100.20" \
    -key 192.168.100.20.key \
    -out 192.168.100.20.csr

5、生成x509 v3扩展文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:192.168.100.20
EOF

6、使用v3.ext 文件为harbor主机生成证书:

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in 192.168.100.20.csr \
    -out 192.168.100.20.crt
    
# x509  签发X.509格式证书命令。
# -req   表示证书输入请求。
# -days  表示有效天数
# -extensions 表示按OpenSSL配置文件v3_req项添加扩展。
# -CA   表示CA证书,这里为ca.crt
# -CAkey  表示CA证书密钥,这里为ca.key
# -CAcreateserial 表示创建CA证书序列号
# -extfile  指定文件

7、签发harbor证书:

mkdir  -p   /data/cert/
cp 192.168.100.20.crt /data/cert/
cp 192.168.100.20.key /data/cert/

8、签发docker证书:

openssl x509 -inform PEM -in 192.168.100.20.crt -out 192.168.100.20.cert

9、拷贝证书:

mkdir -p /etc/docker/certs.d/192.168.100.20
cp 172.30.29.20.cert /etc/docker/certs.d/192.168.100.20/
cp 172.30.29.20.key /etc/docker/certs.d/192.168.100.20/
cp ca.crt   /etc/docker/certs.d/192.168.100.20/

10、重启docker:

systemctl restart docker

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110474.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做好文件外发管理,助力企业安全高效的进行文件共享

信息化时代&#xff0c;考虑到文件传输的便捷和快速&#xff0c;大多采用电子文件的形式完成。电子文档传播性强&#xff0c;但容易被拷贝传输&#xff0c;因此对于发给客户或合作伙伴的重要资料&#xff0c;都需要做好文件外发管理策略&#xff0c;不然随时可能被以明文的形式…

“火焰杯”软件测试高校就业选拔赛获奖名单揭晓,河南工业大学人工智能与大数据学院两名学子上榜,奖金2万元!

10月14日&#xff0c;由大学生软件测试就业联盟主办的“火焰杯”软件测试高校就业选拔赛颁奖典礼在D204会议室隆重举行。我校人工智能与大数据学院软件工程1803班张志成同学夺得决赛一等奖&#xff0c;奖金20000元&#xff1b;软件工程1904班王博伦同学荣获初赛一等奖和决赛二等…

VSCode搭建ESP32 ESP-IDF开发环境-Windows

陈拓 2023/10/09-2023/10/14 1. 安装Windows系统下的ESP32 ESP-IDF开发环境 见《Windows系统安装ESP32 ESP-IDF开发环境》 Windows系统安装ESP32 ESP-IDF开发环境-CSDN博客Windows系统安装ESP32 ESP-IDF开发环境。https://blog.csdn.net/chentuo2000/article/details/1339225…

编程初学者的“愚蠢”代码

每个编程学习者都曾经是初学者&#xff0c;刚起步的时候难免写下一些令人尴尬的、看似愚蠢的代码。这些代码可能充满了错误、逻辑混乱&#xff0c;但它们是学习过程中的一部分。在本文中&#xff0c;我将分享我自己作为初学者时写的一段Java代码&#xff0c;列出问题、分析原因…

springboot+vue基于Spark的共享单车数据存储系统的设计与实现【内含源码+文档+部署教程】

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

分布式链路追踪系统Skywalking的部署和应用

一&#xff0c;背景 随着业务的扩张, 系统变得越来越复杂, 由前端、app、api,微服务,数据库,缓存,消息队列,关系数据库, 列式数据库等构成了繁杂的分布式网络. 当出现一个调用失败的问题时,要定位异常在哪个服务,需要进入每一个服务里看日志, 这个过程的复杂度和工作量是不可想…

蓝屏代码0xc0000001的解决方法和注意事项

蓝屏代码0xc0000001是Windows系统常见的一个错误代码&#xff0c;它通常意味着系统启动时出现了严重的错误。当用户遇到这个问题时&#xff0c;可能会感到非常困惑和焦虑。本文将为大家介绍一些解决蓝屏代码0xc0000001的方法&#xff0c;并详细说明注意事项。让我们一起来看看&…

deepin操作系统下载

官网 最新版本 – 深度科技社区 下载页面 最新版本 – 深度科技社区 随便选择一个下载 直接下载地址 https://cdimage.deepin.com/releases/20.9/deepin-desktop-community-20.9-amd64.iso

IDEA同步代码到Gitee

参考博客 https://gitee.com/jakhyd/risk-operation.git

通达OA通用版V12的表单js定制开发,良好实践总结-持续更新

通达OA通用版V12的表单js定制开发的良好实践总结-持续更新 良好实践总结在表单中的js区域标准代码2023年10月19日获取地址栏&#xff1a;协议、域名/IP地址端口号获取地址栏的参数&#xff0c;比如run_id、flow_id等向表单中追加自定义css、js文件 良好实践总结 在webroot下的…

电脑出现关于kernelbase.dll文件找不到的情况,有什么办法可以解决?

在使用电脑中&#xff0c;突然提示找不到kernelbase.dll&#xff0c;这时候应该怎么办呢&#xff1f;出现这样的问题&#xff0c;有神办法可以解决。看到有小伙伴在问这个问题&#xff0c;那么今天就带大家了解一下这个文件&#xff0c;同时教大家如何解决kernelbase.dll丢失的…

回溯法介绍-回溯与递归的区别【详细且排版舒服】

一、回溯法 1. 定义 有一类问题&#xff0c;我们不知道它明确的计算法则。而是先进行试探&#xff0c;试探到最终状况&#xff0c;发现不满足问题的要求&#xff0c;则回溯到上一个状态继续试探。这种不断试探和回溯的思想&#xff0c;称为回溯法&#xff08;Back Track Meth…

华为OD机试 - 机器人走迷宫 - 深度优先搜索dfs(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、深度优先搜索dfs六、Java算法源码七、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&…

Sosyal Lig Arena VoxEdit 比赛

召集所有体素艺术家和足球爱好者&#xff01;准备好彻底改变足球世界了吗&#xff1f; 我们邀请所有艺术家参加 VoxEdit 未来足球比赛。这场激动人心的比赛向你们发出挑战&#xff0c;请使用 VoxEdit 想象元宇宙中足球的未来。 发挥你们的创造力&#xff0c;展望未来的足球世…

半导体即国家,日本做了啥?最大的 AI 模型并不十分透明;特斯拉安全数据报告缺失近一年丨 RTE 开发者日报 Vol.70

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」&#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

香港服务器在国内访问太慢怎么能提高?

​  一直以来&#xff0c;全球化业务需求的增长是跟随着蓬勃向上的互联网而发展的。有了网络&#xff0c;海外贸易就在鼠标的轻点中完成。而IDC市场中的香港服务器也因为免备案政策的特性&#xff0c;开始逐渐成为企业想要跨越地域壁垒而考虑的对象。但在使用过程中&#xff…

视频号下载助手中的小程序怎么用?微信视频号提取下载教程

​用过视频号视频下载助手都说好用&#xff0c;但还有不少人不知道如何操作&#xff0c;怎么才能快速提取视频号视频呢&#xff1f;今天就分享两个工具【视频下载助手】和【视频下载bot】两个结合的方式进行下载&#xff0c;具体操作看教程。 在微信客户端中搜索提取机器人&…

开关电源芯片好坏的判断标准是什么?如何判断电源芯片的好坏?

电源芯片是电子设备的一个重要元件&#xff0c;如果电源芯片损坏&#xff0c;那么设备也将停止工作。开关电源芯片是一种电源管理器件&#xff0c;可以将输入电压转换为稳定的输出电压。为了开关电源芯片可以正常稳定运行以及电子设备可以正常工作&#xff0c;对于电源芯片的检…

Java面试题:链表-合并两个排序的链表

描述 输入两个递增的链表&#xff0c;单个链表的长度为n&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例 输入&#xff1a; {1,3,5}, {2,4,6}返回值&#xff1a; {1,2,3,4,5,6}原题地址&#xff1a;https://www.nowcoder.com/practice/d8b6b4358f7742…

域控操作三:给域用户本地管理员权限

登录本地管理账号 右键此电脑–管理–本地用户和组–组—双击administrators 一般来说会有本地管理账号和域控的已缓存账号 点击添加–高级–输入域控管理员账号 搜索这个电脑使用人添加进去。重启电脑即可