在Linux系统怎么实现证书签发

在Linux系统怎么实现证书签发

这篇文章主要介绍“在Linux系统怎么实现证书签发”,在日常操作中,相信很多人在在Linux系统怎么实现证书签发问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Linux系统怎么实现证书签发”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

具体内容

在Linux系统里面已经集成了OpenSSL组件,但是考虑到本次生成的操作的步骤异常的复杂,所以强烈建议搭建拷贝我给出完整的配置。整个生成完毕之后还需要将证书转换为 Java 可以使用的证书格式,而后才可以在 Tomcat 中进行配置。本次的开发为了方便的进行证书的下载,直接将所有的证书就生成在 ftp 指定的目录下(/srv/ftp)为了方便保存,建立一个保存所有证书的文件夹:mkdir -p /srv/ftp/cas

2.1、签发根证书

本次生成的证书为根证书,那么将根证书保存在“/srv/ftp/cas”目录之中

1、 生成 CA 密钥对:

opensslgenrsa-out/srv/ftp/cas/cakey.pem2048RSA

生成一个使用 RSA 编码的的密钥信息,而后生成的文件保存到“/srv/ftp/cas/cakey.pem”该密钥对的长度为 2048 个字节。

2、 生成根证书的签发申请:

opensslreq-new-key/srv/ftp/cas/cakey.pem-out/srv/ftp/cas/cacert.csr-subj/CN=cas.com

在证书访问的时候必须以域名的形式出现(不要使用 ip),这个域名应该是你自己的。现在如果要进行本机的模拟,那么需要通过 windows 下的 hosts 进行修改。

3、 生成根证书的签发申请:

opensslx509-req-days3650-sha1-extensionsv3_ca-signkey/srv/ftp/cas/cakey.pem-in/srv/ftp/cas/cacert.csr-out/srv/ftp/cas/ca.cer

此签发证书的有效时间为 10 年。

2.2、签发服务器端证书

为了与根证书的保存区分,建议建立一个目录:mkdir -p /srv/ftp/cas/server;

1、 生成服务器私钥:

opensslgenrsa-aes256-out/srv/ftp/cas/server/server-key.pem2048

服务器端生成私钥的时候需要设置一个密码,密码为:mldnjava;

2、 生成服务器端证书的签发申请,创建的时候依然需要输入之前的密码:

opensslreq-new-key/srv/ftp/cas/server/server-key.pem-out/srv/ftp/cas/server/server.csr-subj/CN=cas.com

3、 生成服务器端证书的签发申请,有效期为 10 年:

opensslx509-req-days3650-sha1-extensionsv3_req-CA/srv/ftp/cas/ca.cer-CAkey/srv/ftp/cas/cakey.pem-CAserial/srv/ftp/cas/server/ca.srl-CAcreateserial-in/srv/ftp/cas/server/server.csr-out/srv/ftp/cas/server/server.cer

此时有了服务器端的证书之后才可以创建客户端证书。

2.3、签发客户端证书

建立一个目录保存客户端证书信息:mkdir -p /srv/ftp/cas/client;

1、 生成客户端私钥:

opensslgenrsa-aes256-out/srv/ftp/cas/client/client-key.pem2048

生成的时候输入密码:mldnjava;

2、 生成客户端的证书申请:

opensslreq-new-key/srv/ftp/cas/client/client-key.pem-out/srv/ftp/cas/client/client.csr-subj/CN=cas.com

3、 生成客户端的签发证书:

opensslx509-req-days365-sha1-CA/srv/ftp/cas/ca.cer-CAkey/srv/ftp/cas/cakey.pem-CAserial/srv/ftp/cas/server/ca.srl-in/srv/ftp/cas/client/client.csr-out/srv/ftp/cas/client/client.cer

此时最需要注意的是,该证书只针对于“cas.com”有效。

2.4、生成 Java 证书

现在使用了 OpenSSL 生成的数字证书和私钥,如果要想在 java 的环境下使用,需要将其转换为“PKCS#12”的编码格式密钥文件才可以被 Java 的 keytool 工具所管理

前提:此时 java 端的证书由于需要在 tomcat 上使用,那么最终的证书建议在 Tomcat 的目录中保存,而 Tomcat 的路径为“/usr/local/tomcat”。

1、 生成客户端证书:

opensslpkcs12-export-clcerts-namecas-client-inkey/srv/ftp/cas/client/client-key.pem-in/srv/ftp/cas/client/client.cer-out/srv/ftp/cas/client/client.p12

客户端的证书随后是需要发给客户端浏览器的。

2、 生成服务器端证书,主要由 Tomcat 使用;

opensslpkcs12-export-clcerts-namecas-server-inkey/srv/ftp/cas/server/server-key.pem-in/srv/ftp/cas/server/server.cer-out/srv/ftp/cas/server/server.p12

3、 将现在生成的服务器端证书导入到本机的受信认证证书

keytool-importcert-trustcacerts-aliascas.com-file/srv/ftp/cas/ca.cer-keystore/usr/local/tomcat/ca-trust.p12

那么此时 JDK 就表示当前要使用的证书已经得到了认可。

4、 查看所有的证书信息:

keytool-list-keystore/srv/ftp/cas/client/client.p12-storetypepkcs12-v

随后还需要在客户端进行证书的配置。

到此,关于“在Linux系统怎么实现证书签发”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!

发布于 2021-12-23 21:17:13
收藏
分享
海报
0 条评论
111
上一篇:redis SSO概念是什么 下一篇:如何进行Bitbucket服务与数据中心远程代码执行漏洞通告
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码