首页 > 其他分享 >生成SSL证书

生成SSL证书

时间:2024-06-20 16:32:10浏览次数:20  
标签:keystore 证书 crbt ca 生成 SSL home lihw

生成SSL证书

 

 

SSL 是一种加密协议,用于在网络通信中提供数据的保密性和完整性。它使用公钥和私钥来建立安全的连接,并对传输的数据进行加密和解密,以防止未经授权的访问和篡改。根据文章操作,生成以下四个文件用于存储与 SSL 相关的密钥、证书和信任的根证书。

  1. client.keystore.jks
    是客户端密钥库文件。它包含客户端的私钥和相应的证书。客户端使用该私钥进行身份验证和安全通信。客户端的私钥用于加密传输给服务器的数据,并与服务器的公钥进行握手和密钥交换,确保通信的安全性和完整性。
  2. server.keystore.jks
    是服务器密钥库文件。它包含服务器的私钥和相应的证书。服务器使用该私钥进行身份验证和安全通信。服务器的私钥用于解密客户端发送的数据,并与客户端的公钥进行握手和密钥交换,确保通信的安全性和完整性。
  3. client.truststore.jks
    是客户端信任库文件。它包含客户端信任的根证书或证书链。客户端使用该信任库来验证服务器的证书是否可信。如果服务器的证书由客户端信任库中的任何一个根证书所签发,客户端将信任服务器的证书,并继续与服务器进行安全通信。
  4. server.truststore.jks
    是服务器信任库文件。它包含服务器信任的根证书或证书链。服务器使用该信任库来验证客户端的证书是否可信。如果客户端的证书由服务器信任库中的任何一个根证书所签发,服务器将信任客户端的证书,并继续与客户端进行安全通信。

keytool相关指令说明

指令含义
-alias 别名
-keystore 指定密钥库的名称(就像数据库一样的证书库,可以有很多个证书,cacerts这个文件是jre自带的, 也可以使用其它文件名字,如果没有这个文件名字,它会创建这样一个)
-storepass 指定密钥库的密码
-keypass 指定别名条目的密码
-list 显示密钥库中的证书信息
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目
-import 将已签名数字证书导入密钥库
-keypasswd 修改密钥库中指定条目口令
-dname 指定证书拥有者信息。其中,CN=名字与姓氏/域名,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码
-keyalg 指定密钥的算法
-validity 指定创建的证书有效期多少天
-validity 指定创建的证书有效期多少天

服务器端SSL证书签发

第一步:创建几个目录来保存证书

为了方便证书的保存管理,这里先专门创建几个目录来保存证书

mkdir -p /home/crbt/lihw/ca/{root,server,client,trust}

第二步:生成server.keystore.jks文件(生成服务端的keystore文件)

keytool -keystore /home/crbt/lihw/ca/server/server.keystore.jks -alias node1 -validity 365 -genkey -keypass Q06688 -keyalg RSA -dname "CN=node1,OU=aspire,O=aspire,L=beijing,S=beijing,C=cn" -storepass Q06688 -ext SAN=DNS:node1

注:这里的-ext SAN=DNS:xxx需要指定xxx为我们定义的主机名;-dname中的CN也需要指定为我们定义的主机名。

验证证书:

keytool -list -v -keystore /home/crbt/lihw/ca/server/server.keystore.jks

第三步:生成CA认证证书(ca-cert、ca-key)

提示:利用Linux自带的OpenSSL创建即可。(为了保证整个证书的安全性,需要使用CA进行证书的签名保证)

openssl req -new -x509 -keyout /home/crbt/lihw/ca/root/ca-key -out /home/crbt/lihw/ca/root/ca-cert -days 365 -passout pass:Q06688 -subj "/C=cn/ST=beijing/L=beijing/O=aspire/OU=aspire/CN=node1"

第四步:通过CA证书创建一个客户端信任证书(client.truststore.jks)

keytool -keystore /home/crbt/lihw/ca/trust/client.truststore.jks -alias CARoot -import -file /home/crbt/lihw/ca/root/ca-cert -storepass 

注:有了信任证书才可以进行证书有效性的检查。以后的证书必须通过CA认证后才能使用。

第五步:通过CA证书创建一个服务端器端信任证书(server.truststore.jks)

keytool -keystore /home/crbt/lihw/ca/trust/server.truststore.jks -alias CARoot -import -file /home/crbt/lihw/ca/root/ca-cert -storepass Q06688

注:以后的证书必须通过CA认证后才能使用。

第六步:服务器证书的签名处理

6.1 导出服务器端证书(server.cert-file)

keytool -keystore /home/crbt/lihw/ca/server/server.keystore.jks -alias node1 -certreq -file /home/crbt/lihw/ca/server/server.cert-file -storepass Q06688

6.2 用CA给服务器端证书进行签名处理(server.cert-signed)

openssl x509 -req -CA /home/crbt/lihw/ca/root/ca-cert -CAkey /home/crbt/lihw/ca/root/ca-key -in /home/crbt/lihw/ca/server/server.cert-file -out /home/crbt/lihw/ca/server/server.cert-signed -days 365 -CAcreateserial -passin pass:Q06688

6.3 将CA证书导入到服务器端keystore

keytool -keystore /home/crbt/lihw/ca/server/server.keystore.jks -alias CARoot -import -file /home/crbt/lihw/ca/root/ca-cert -storepass Q06688

6.4 将已签名的服务器证书导入到服务器keystore

keytool -keystore /home/crbt/lihw/ca/server/server.keystore.jks -alias node1 -import -file /home/crbt/lihw/ca/server/server.cert-signed -storepass Q06688

客户端SSL证书签发

第一步:导出客户端证书(client.keystore.jks)

keytool -keystore /home/crbt/lihw/ca/client/client.keystore.jks -alias node1 -validity 365 -genkey -keypass Q06688 -keyalg RSA -dname "CN=node1,OU=aspire,O=aspire,L=beijing,S=beijing,C=cn" -ext SAN=DNS:node1 -storepass Q06688

第二步:将证书文件导入到客户端keystore(client.cert-file)

keytool -keystore /home/crbt/lihw/ca/server/server.keystore.jks -alias node1 -certreq -file /home/crbt/lihw/ca/client/client.cert-file -storepass Q06688

第三步:用CA给客户端证书进行签名处理(client.cert-signed)

openssl x509 -req -CA /home/crbt/lihw/ca/root/ca-cert -CAkey /home/crbt/lihw/ca/root/ca-key -in /home/crbt/lihw/ca/client/client.cert-file -out /home/crbt/lihw/ca/client/client.cert-signed -days 365 -CAcreateserial -passin pass:Q06688

第四步:将CA证书导入到客户端keystore

keytool -keystore /home/crbt/lihw/ca/client/client.keystore.jks -alias CARoot -import -file /home/crbt/lihw/ca/root/ca-cert -storepass Q06688

第五步:将已签名的证书导入到客户端keystore

keytool -keystore /home/crbt/lihw/ca/client/client.keystore.jks -alias CARoot-client -import -file /home/crbt/lihw/ca/client/client.cert-signed -storepass Q06688

参考:SSL认证之相关证书的生成_linux 根据服务端ssl证书生成客户端证书-CSDN博客,参考的博客中有错误作者还未更正。以下是我测试环境,生成服务器/客户端SSL证书的步骤,亲测可用

标签:keystore,证书,crbt,ca,生成,SSL,home,lihw
From: https://www.cnblogs.com/paimianbaobao/p/18258944

相关文章

  • CertWatcher:一款功能强大的证书监控和恶意活动检测工具
    关于CertWatcherCertWatcher是一款功能强大的证书监控和恶意活动检测工具,旨在实时分析SSL/TLS证书,并检测web服务器上的恶意活动、漏洞和错误配置。它通过捕获和跟踪证书透明度日志,并使用YAML模板检测和分析钓鱼网站以及其他类型的恶意活动来实现其功能。Certwatcher持续监......
  • KAFKA配置 SASL_SSL双重认证
    1.背景kafka提供了多种安全认证机制,主要分为SASL和SSL两大类。SASL:是一种身份验证机制,用于在客户端和服务器之间进行身份验证的过程,其中SASL/PLAIN是基于账号密码的认证方式。SSL:是一种加密协议,用于在网络通信中提供数据的保密性和完整性。它使用公钥和私钥来建立安全的连接,并......
  • httpsok-v1.13.0支持七牛云证书自动部署
    ......
  • httpsok-v1.13.0支持nginx证书部署管理
    ......
  • 【仿真建模-anylogic】动态生成辊道网络
    Author:赵志乾Date:2024-06-18Declaration:AllRightReserved!!!1.常用函数     辊道网络中可以包含多种元素,在动态生成辊道网络中,最常用到的是Conveyor元素和ConveyorCustomStation元素。本次示例仅说明Conveyor元素的动态生成,其内部对应的Java类为ConveyorPath;每个......
  • mybatisplus代码生成
    1.引入依赖点击查看代码<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.......
  • 生成式人工智能不会为你建立工程团队
    生成式人工智能不会为你建立工程团队软件产业正在成长在某种程度上,这是行业成熟的必然结果。任何领域的早期都有点像狂野的西部,赌注很低,没有监管,标准刚刚形成。如果你看看其他行业的早期历史——医药、电影、广播——相似之处是惊人的。任何新兴技术都有一个神奇的时刻,......
  • aggregate ‘QSslConfiguration conf‘ has incomplete type and cannot be defined
    用Qt进行网络开发,所以程序中包含了network模块,但编译Qt程序时报错aggregate'QSslConfigurationconf'hasincompletetypeandcannotbedefined,报错截图如下QSslConfiguration类是Qt框架中用于SSL配置的一部分,报错表示编译器没有找到QSslConfiguration的完整定义,需......
  • 可视化表单拖拽生成器优势多 助力流程化办公!
    当前,很多企业需要实现流程化办公,进入数字化转型时期。要想实现这一目标,就需要借助更优质的平台产品。低代码技术平台是得到企业喜爱的发展平台,拥有可视化操作、灵活、高效、更可靠等优势特点,在推动企业实现流程化办公的过程中具有重要的应用价值。一起来看看可视化表单拖拽生成器......
  • 【第12章】别人的工作流,如何使用和调试(下)?(安装视频生成模型SVD/服务器报错/爆显存/丢图
    ......