【工作技术栈】【备忘笔记】创建自签证书及使用过程

发布时间:2023年12月20日

前言

通常测试环境不会接入互联网,可能也没有自己的dns服务器,和ca认证中心,但是https已经成为了web页面必须的协议,这里记录一下自签证书配置和创建的过程

现象

版本(抛开版本就是耍流氓~)
openssl 1.1.1m

需求
需要为当前服务器的nginx或者harbor等服务进程配置一个自签证书来对测试环境验证https

方案实现

1、准备
一个ip或者一个域名,这里域名假如是yuming.top
2、生成ca私钥(因为没有ca机构,因此当前服务器自己作为ca为自己的ip/域名来证明自己)
openssl genrsa -out ca.key 2048

结束后应该会有一个ca.key 文件

3、为ca私钥生成一个对应的证书
openssl req -x509 -new -nodes -sha512 -days 3650 -subj “/CN=yuming.top” -key ca.key -out ca.crt
4、生成服务器自己的私钥server.key
openssl genrsa -out server.key 2048
5、生成服务器私钥对应的签名
openssl req -x509 -new -nodes -sha512 -days 3650 -subj “/CN=yuming.top” -key server.key -out server.crt
6、创建一个拓展文件ext
v3.ext 是一个用于生成ssl证书配置文件的拓展文件,在这个示例中,我们定义了一个单独的主题备用名称
(Subject Alternative Name SAN)为yuming.top, 并为该域名配置了服务器身份验证(serverAuth)拓展
此外,该文件还指定了一些基本的约束和秘钥用途,包括:
· 确定当前证书是否为ca:这里ca:false 说明当前证书不是一个ca证书,不能用于签发其他证书
· 秘钥用途:我们指定了数字签名、不可否认、秘钥加密和数据加密等用途,以适应常见的服务器证书需求
文件名:v3.ext
内容:
authorityKeyIdentifier=keyid,issuer
basicContraints=CA:FALSE
keyUsage = digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=yuming.top

7、生成服务器证书server.crt
openssl x590 -req -sha512 -days 3560 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr - out server.crt
8、当前目录下的文件列表:
ca.crt
ca.key
ca.srl
server.key
server.csr
server.crt
v3.ext

接下来不同的服务使用方式各不相同,需要大家自行百度,这里我使用harbor做例子
通常harbor的yaml文件中有配置证书的地方 ~/harbor/harbor.yaml
服务器配置通常只需要两个文件,一个server.crt证书,一个私钥server.key

客户单侧大多数场景为chrome,只需要信任即可,有些linux服务器可能需要配置一下信任才能
访问,例如linux如果需要配置信任某个证书,则需要修改文件
/etc/pki/tls/cert/ca-bundle.crt

思考感悟

这里的配置需要了解一下https的握手以及交互过程,中间可能还会遇到握手失败等问题,那么可能是
javaSDK不支持部分TLS算法导致的。

文章来源:https://blog.csdn.net/qq_39760347/article/details/133716430
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。