linux使用openssl生成.crt.key.keystore

 更新时间:2026年04月17日 14:40:08   作者:搬砖的梦先生  
文章主要详细介绍了使用`ssl.cncnf`生成RSA密钥、根据`key`和`cnf`生成CRT、生成自签证书、查看`.crt`详细信息以及生成`keystore`的方法,这些操作主要用于SSL证书的生成与配置,确保网络通信的安全性

新建一个ssl.cnf

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = CN

stateOrProvinceName = BeiJing

localityName = BeiJing
organizationName = GS Ltd		### 公司缩写 Ltd

organizationalUnitName = GS		### 公司缩写

commonName = 192.168.1.1

commonName_max = 64

[v3_req]
basicConstraints = CA:TRUE
subjectAltName = @alt_names

[alt_names]
#根据需要可以添加多个,我在测试时使用内网IP,一直提示hostname not verified ,
#后来在这里添加了自己的ip就可以了
IP.1 = 192.168.1.1
IP.2 = 192.168.1.2

生成key

[root@192-168-1-1 ssl] openssl genrsa -des3 -out ssl.key 4096
Generating RSA private key, 4096 bit long modulus
................................................................................++
e is 65537 (0x10001)
Enter pass phrase for ssl.key:					##输入密码 123456
Verifying - Enter pass phrase for ssl.key:          ## 再次输入密码  123456

  • genrsa:产生rsa密钥命令
  • -out:输出路径

根据key和cnf生产crt

[root@192-168-1-1 ssl]# openssl req -new -x509 -days 365 -key ssl.key -out ssl.crt -extensions v3_req -config ssl.cnf
Enter pass phrase for ssl.key:  ##输入key的密码 123456
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
CN []:CN
BeiJing []:BeiJing
BeiJing []:BeiJing
GS Ltd []:GS Ltd
GS []:GS
192.168.1.1 []:192.168.1.1
  • -new:表示生成一个新证书签署请求
  • -x509:专用于CA生成自签证书,如果不是自签证书则不需要此项
  • -key:用到的私钥文件
  • -out:证书的保存路径
  • -days:证书的有效期限,单位是day(天),默认是openssl.cnf的default_days

查看.crt的详细信息

openssl x509 -in ssl.crt -noout -text

生产keystore

[root@192-168-1-1 ssl]# openssl pkcs12 -export -in ssl.crt -inkey ssl.key -out ssl.p12 -name ssl -CAfile ssl.crt -caname root -chain
Enter pass phrase for ssl.key:  ##输入key的密码 123456
Enter Export Password:  ##输入密码 123456
Verifying - Enter Export Password:   ##输入密码 123456

[root@192-168-1-1 ssl]# keytool -importkeystore -v  -srckeystore ssl.p12 -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore ssl.keystore -deststoretype jks -deststorepass 123456 
正在将密钥库 ssl.p12 导入到 ssl.keystore...
已成功导入别名 ssl 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
[正在存储ssl.keystore]

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore ssl.keystore -destkeystore ssl.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

[root@192-168-1-1 ssl]# keytool -importkeystore -srckeystore ssl.keystore -destkeystore ssl.keystore -deststoretype pkcs12
输入源密钥库口令:  
已成功导入别名 ssl 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消

Warning:
已将 "ssl.keystore" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "ssl.keystore.old" 进行了备份。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux在vim中查找和替换方式

    linux在vim中查找和替换方式

    Linux中使用Vim编辑器查找和替换文本的方法非常直观和强大,Vim支持多种查找和替换的命令,包括向前查找、向后查找、查找并替换文本、替换所有匹配项、确认每个替换和在多个文件中进行替换等
    2025-02-02
  • Linux查找包含指定文字的文件(linux查找指定文件)

    Linux查找包含指定文字的文件(linux查找指定文件)

    本文介绍Linux查找包含指定文字的文件命令(linux查找指定文件),大家参考使用吧
    2013-12-12
  • Linux让程序在后台运行的四种方法

    Linux让程序在后台运行的四种方法

    这篇文章主要介绍了Linux让程序在后台运行的四种方法和使用推荐,通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-03-03
  • Ubuntu18.04设置共享文件夹方式(解决/mnt目录下没有hgfs目录)

    Ubuntu18.04设置共享文件夹方式(解决/mnt目录下没有hgfs目录)

    这篇文章详细介绍了如何在Ubuntu虚拟机和Windows系统之间共享文件夹,并提供了具体步骤,包括创建共享文件夹、配置虚拟机设置、在Ubuntu中查看共享文件夹、解决挂载问题以及设置开机自动挂载
    2025-12-12
  • centos6.5安装vncserver图文教程

    centos6.5安装vncserver图文教程

    这篇文章主要介绍了centos6.5安装vncserver图文教程的相关资料,这里对centos 安装vncserver 进行了实例介绍,需要的朋友可以参考下
    2016-11-11
  • linux如何定时删除N天前的文件(文件夹)

    linux如何定时删除N天前的文件(文件夹)

    这篇文章主要介绍了linux如何定时删除N天前的文件(文件夹)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Linux如何查看、修改文件读写权限

    Linux如何查看、修改文件读写权限

    本文介绍了Linux文件权限的基本概念和查看、修改权限的方法,通过解析权限字符串(如"drwxrwxrwx")和使用chmod命令,可以详细设置用户、组和其他人的读、写、执行权限
    2024-12-12
  • Apache伪静态(Rewrite).htaccess文件详解与配置技巧

    Apache伪静态(Rewrite).htaccess文件详解与配置技巧

    Apache伪静态(Rewrite).htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令,主要的作用有:URL重写、自定义错误页面、MIME类型配置以及访问权限控制等
    2025-03-03
  • linux服务器ubuntu定时任务cron设置每秒执行

    linux服务器ubuntu定时任务cron设置每秒执行

    这篇文章主要介绍了linux服务器ubuntu定时任务cron设置每秒执行,使用 cron 时,有一些注意事项可以帮助你确保任务按预期执行,并减少潜在的问题,本文给大家介绍的非常详细,需要的朋友参考下吧
    2024-02-02
  • 在LINUX系统上使用rsync命令详解

    在LINUX系统上使用rsync命令详解

    rsync是一款多功能的文件同步工具,支持增量备份,减少数据传输时间和带宽,它可以与不同的shell和协议配合使用,确保数据传输的安全性,提供了详细的安装和使用指南,适用于多种Linux发行版,使用户能够轻松掌握和应用,Rsync的命令选项丰富
    2024-10-10

最新评论