Linux下使用openssl为harbor制作证书

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.rhkb.cn/news/164046.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app:js二维数组与对象数组之间的转换

一、二维数组整理成对象数组 效果 [ ["前绿箭","DI10","RO1"], ["前红叉","DI2","RO2"], ["后绿箭","DI12","RO3"], ["后红叉","DI4","RO6"] ] …

Bootstrap的媒体对象组件(图文展示组件),挺有用的一个组件。

Bootstrap的.media类是用于创建媒体对象的&#xff0c;媒体对象通常用于展示图像&#xff08;图片&#xff09;和文本内容的组合&#xff0c;这种布局在展示新闻文章、博客帖子等方面非常常见。.media类使得创建这样的媒体对象非常简单&#xff0c;通常包含一个图像和相关的文本…

Redis实现附近商户

GEO数据结构的基本用法 GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; GEOADD&#xff1a;添加一个地理空间信息&#xf…

初阶数据结构-常见的排序算法

排序 排序的概念常见的排序算法常见排序算法的实现数组的打印 插入排序直接插入排序的实现希尔排序( 缩小增量排序 )希尔排序的实现 交换排序冒泡排序冒泡排序的实现选择排序选择排序的实现堆排序堆排序的实现快速排序快速排序非递归 归并排序归并排序的递归实现归并排序的非递…

数据分析:密度图

目前拥有的数据如图&#xff0c;三列分别对应瑕疵种类&#xff0c;对应的置信 度&#xff0c;x方向坐标。 现在想要做的事是观看瑕疵种类和置信度之间的关系。 要显示数据分布的集中程度&#xff0c;可以使用以下几种常见的图形来观察&#xff1a; 1、箱线图&#xff08;Box P…

跨境电商:产业带的深度赋能

近年来&#xff0c;中国跨境电商平台崭露头角&#xff0c;成为推动国内产业带转型升级和出海的新引擎。这一充满活力的领域不仅让中国制造走向世界&#xff0c;也为国内众多产业提供了数字化升级的机会&#xff0c;实现了“小单快反”和按需供应。 专业跨境电商平台如SHEIN和阿…

【网络】网络编程套接字(一)

网络编程套接字 一 一、网络编程中的一些基础知识1、认识端口号2、认识TCP协议和UDP协议3、网络字节序 二、socket编程1、sockaddr结构2、简单的UDP网络程序Ⅰ、服务器的创建Ⅱ、运行服务器Ⅲ、关于客户端的绑定问题Ⅳ、启动客户端Ⅴ、本地测试Ⅵ、网络测试 一、网络编程中的一…

【试题002】C语言有关于sizeof的使用

1.说明&#xff1a;sizeof()是测量数据类型所占用的内存字节数&#xff0c;字符串常量在存储时除了要存储有效字节外&#xff0c;还要存储一个字符串结束志‘\0’。 2.代码举栗子&#xff1a; #include <stdio.h> int main() {char str[] "book";printf(&qu…

Jupyter Notebook 设置黑色背景主题

Jupyter Notebook 设置黑色背景主题 # 包安装 pip install jupyterthemes -i https://mirrors.aliyun.com/pypi/simple pip install --upgrade jupyterthemes # 查看可用主题 jt -l # monokai暗背景&#xff0c;-f(字体) -fs(字体大小) -cellw(占屏比或宽度) -ofs(输出段的字…

黑马JVM总结(三十七)

&#xff08;1&#xff09;synchronized-轻量级锁-无竞争 &#xff08;2&#xff09;synchronized-轻量级锁-锁膨胀 重量级锁就是我们前面介绍过的Monitor enter &#xff08;3&#xff09;synchronized-重量级锁-自旋 &#xff08;4&#xff09;synchronized-偏向锁 轻量级锁…

中科芯与IAR共建生态合作,IAR集成开发环境全面支持CKS32系列MCU

中国上海–2023年10月18日–嵌入式开发软件和服务的全球领导者IAR今日宣布&#xff0c;与中科芯集成电路有限公司&#xff08;以下简称中科芯&#xff09;达成生态合作&#xff0c;IAR已全面支持CKS32系列MCU的应用开发。这一合作将进一步推动嵌入式系统的发展&#xff0c;并为…

CSS魔法!如何将任意CSS类型转换为数值?

在 CSS 中有各式各样的类型值&#xff0c;例如 1rem、10vw、100cqw等等&#xff0c;这些相对值给与了 CSS 强大的适应能力。但有时候&#xff0c;我们还需要知道这些相对值所对应的真实值&#xff0c;也就是px值&#xff0c;比如在移动端&#xff0c;我们经常会设置这样的根字号…

简单了解一下:Node全局对象和事件监听和触发

Node的全局对象&#xff0c;就是整个应用都能引用的对象。Node本身内置了多个全局变量、全局对象和全局函数。 全局变量有两个&#xff1a;__filename和__dirname&#xff0c; __filename&#xff1a;表示当前正在执行的脚本文件名&#xff1b; __dirname&#xff1a;当前脚本…

【公益案例展】广碳所——恒生电子基于区块链技术打造区域性碳中和登记系统...

‍ 恒生电子公益案例 本项目案例由恒生电子投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2023中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 全球气候变暖、温室效应明显、二氧化碳排放增多&#…

CSS之Flex布局的详细解析

Flex布局 目标&#xff1a;熟练使用 Flex 完成结构化布局 01-标准流 标准流也叫文档流&#xff0c;指的是标签在页面中默认的排布规则&#xff0c;例如&#xff1a;块元素独占一行&#xff0c;行内元素可以一行显示多个。 02-浮动 基本使用 作用&#xff1a;让块元素水平排列…

Excel提高工作效率常用功能

定位快捷键使用 CtrlG或者F5 根据不同类别插入空行 例&#xff1a;以下表&#xff0c;以部门为单位&#xff0c;每个部门后插入空白行 部门姓名出勤基本工资岗位津贴公体加班绩效基数工龄应发合计财务部姓名73115002101710财务部姓名11116006003401502363财务部姓名5271000…

新年学新语言Go之四

一、前言 任何编程语言都有类型系统&#xff0c;类型系统解决了数据的存取问题&#xff0c;它决定了使用这个类型需要开辟内存空间大小以及数据是如何存放的&#xff0c;也解决如何读出数据&#xff0c;因为在内存中相同二进制值不同类型的含义是不一样的&#xff0c;关于Go基…

微信小程序仿苹果负一屏由弱到强的高斯模糊

进入下面小程序可以体验效果&#xff0c;然后进入更多。查看模糊效果 一、创建小程序组件 二、代码 wxml: <view class"topBar-15"></view> <view class"topBar-14"></view> <view class"topBar-13"></view&…

【C++】C++的类型转换

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】C智…

微信小程序的OA会议之首页搭建

目录 一.小程序的布局 1.1. flex是什么 1.2. flex布局 1.3.总体布局 二.轮播图 2.1. 组件 2.2. 数据请求 2.3. 页面 三.首页 2.1. 视图 2.2.数据 2.3. 样式 好啦今天就到这里了&#xff0c;希望能帮到你哦&#xff01;&#xff01;&#xff01; 一.小程序的布局 …