https改造-自签CA证书相关证书创建

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


https改造-自签CA证书相关证书创建

1. CA证书创建

keytool -genkeypair -alias rootkey -keyalg RSA -keysize 2048 -keystore rootca.jks -dname "CN=rootYzy, OU=yzy, O=yzy, L=Beijing, ST=Beijing, C=CN" -validity 8000 -storepass changeit -ext BasicConstraints:critical=CA:true -ext KeyUsage=keyCertSign,cRLSign

在这里插入图片描述

1.1. 将 JKS 格式的密钥库转换为 PKCS12 格式
keytool -importkeystore -srckeystore rootca.jks -destkeystore rootca.p12 -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit

在这里插入图片描述

1.2. 验证转换后的 PKCS12 密钥库
keytool -list -v -keystore rootca.p12 -storetype pkcs12 -storepass changeit

在这里插入图片描述

1.3. 导出根证书
keytool -export -alias rootkey -keystore rootca.p12 -rfc -file rootca.crt -storepass changeit

在这里插入图片描述

2. 根据CA证书进行签发服务端证书

2.1. 生成服务端证书请求(CSR)

服务端证书中的CN 通常是服务器的域名。

keytool -genkeypair -alias yzy_service -keyalg RSA -keysize 2048 -keystore yzy_service.jks -dname "CN=www.yzy.com, OU=yzy, O=yzy, L=Beijing, ST=Beijing, C=CN" -validity 7300 -storepass yzy@yzy

keytool -importkeystore -srckeystore yzy_service.jks -destkeystore yzy_service.p12 -deststoretype pkcs12  -srcstorepass yzy@yzy -deststorepass yzy@yzy

keytool -certreq -alias yzy_service -keystore yzy_service.p12 -file yzy_service.csr -storepass yzy@yzy


在这里插入图片描述

2.2. 使用根证书CA证书签发服务端证书
keytool -gencert -alias rootkey -keystore rootca.p12 -infile yzy_service.csr -outfile yzy_service.crt -validity 7300 -storepass changeit -ext BasicConstraints:critical=CA:false -ext KeyUsage=keyEncipherment,dataEncipherment,digitalSignature -ext ExtendedKeyUsage=serverAuth

在这里插入图片描述

验证证书链:

openssl verify -CAfile rootca.crt yzy_service.crt

在这里插入图片描述
查看证书:

openssl x509 -in yzy_service.crt -text -noout

在这里插入图片描述

2.3. 将根证书导入到服务端 keystore

也可以作为客户端证书

keytool -import -alias rootkey -keystore yzy_service.p12 -file rootca.crt -noprompt -storepass yzy@yzy

在这里插入图片描述

2.4. 确认证书扩展名的正确性

确认证书扩展名的正确性,确保证书中包含正确的 Key Usage 和 Extended Key Usage:

openssl x509 -in yzy_client.crt -noout -text | find "X509v3"

在这里插入图片描述
确保根证书的扩展名正确,检查 Basic Constraints

openssl x509 -in rootca.crt -noout -text | find "X509v3 Basic Constraints"

在这里插入图片描述

3. 信用库制作

3.1. 导出证书到信用库
keytool -import -alias yzy_service -keystore rootca.p12 -file yzy_service.crt -storepass changeit

因为信用库要包含CA证书,所以直接拿rootca.p12作为信用库的地基。

在这里插入图片描述

3.2. 查看信任库
keytool -list -v -keystore rootca.p12  -storepass changeit

在这里插入图片描述

3.3. 删除信用库条目命令
keytool -delete -alias yzy_service -keystore rootca.p12 -storepass changeit
keytool -list -v -keystore rootca.p12  -storepass changeit

在这里插入图片描述
测试完删除条目后,把条目加回来。

4. keystore工具安装

下载地址:

https://keystore-explorer.org/downloads.html

安装后的样子:

在这里插入图片描述

5. 证书pem,私钥pem,信用库pem制作

5.1. 证书pem制作

打开KeyStore Explorer,并导入您的 yzy_service.p12 文件。
在这里插入图片描述

输入你制作yzy_service.p12时候的密码

在这里插入图片描述

在这里插入图片描述
选择您的客户端证书。
右键点击选择“Export” -> “Export Certificate Chain”。
在这里插入图片描述
选择导出格式为 .pem 并保存为 yzy_service_cert.pem。
在这里插入图片描述
在这里插入图片描述

导出成功!!!

5.2. 私钥pem制作

右键点击选择“Export” -> “Export Key Pair”。
选择导出格式为 .pem 并保存为 yzy_service_key.pem
在这里插入图片描述

输入你制作yzy_service.p12时候的密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
导出成功!!!
在这里插入图片描述
使用 OpenSSL 将私钥文件转换为不加密的 PEM 格式:

openssl rsa -in yzy_service_key.pem -out yzy_service_key_unencrypted.pem

在这里插入图片描述

5.3. 信用库pem制作

生成yzy_service_full_chain.pem,包含完整的证书链

type yzy_service_cer.pem rootca.crt > yzy_service_full_chain.pem

在这里插入图片描述

5.4. 验证证书pem与秘钥pem
openssl x509 -noout -modulus -in yzy_service_cert.pem | openssl md5
openssl rsa -noout -modulus -in yzy_service_key_unencrypted.pem | openssl md5

查看生成的md5值是否一样:
在这里插入图片描述

相关推荐

  1. SpringBoot 启用 Https,生成 jks 证书

    2024-07-22 10:50:01       36 阅读
  2. Https 中的CA证书

    2024-07-22 10:50:01       33 阅读
  3. https创建证书

    2024-07-22 10:50:01       24 阅读
  4. ssl安全证书免费申请方法,非证书

    2024-07-22 10:50:01       22 阅读
  5. 如何在linux下使用opensslhttps的ip证书配置nginx

    2024-07-22 10:50:01       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 10:50:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 10:50:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 10:50:01       45 阅读
  4. Python语言-面向对象

    2024-07-22 10:50:01       55 阅读

热门阅读

  1. 如何在 .NET Core 中生成服务器端报表

    2024-07-22 10:50:01       17 阅读
  2. PyTorch实现标签到One-Hot编码的步骤解析

    2024-07-22 10:50:01       19 阅读
  3. DM数据库导出excel表结构

    2024-07-22 10:50:01       14 阅读
  4. 探索Python元类的奥秘:定义与实用应用

    2024-07-22 10:50:01       15 阅读
  5. 经常进行工作总结,有何重要作用呢?

    2024-07-22 10:50:01       14 阅读
  6. C++:istream、ostream和fstream类

    2024-07-22 10:50:01       18 阅读
  7. 4 DAY

    2024-07-22 10:50:01       14 阅读
  8. 数仓中主题域还是数据域?

    2024-07-22 10:50:01       15 阅读