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

发布时间:2021-12-23 17:19:44 作者:iii
来源:亿速云 阅读:259

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

具体内容

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

2.1、签发根证书

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

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

1、 生成 CA 密钥对:

openssl genrsa -out /srv/ftp/cas/cakey.pem 2048 RSA

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

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

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

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

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

openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey /srv/ftp/cas/cakey.pem -in /srv/ftp/cas/cacert.csr -out /srv/ftp/cas/ca.cer

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

2.2、签发服务器端证书

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

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

1、 生成服务器私钥:

openssl genrsa -aes256 -out /srv/ftp/cas/server/server-key.pem 2048

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

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

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

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

openssl x509 -req -days 3650 -sha1 -extensions v3_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、签发客户端证书

在Linux系统怎么实现证书签发建立一个目录保存客户端证书信息:mkdir -p /srv/ftp/cas/client;

1、 生成客户端私钥:

openssl genrsa -aes256 -out /srv/ftp/cas/client/client-key.pem 2048

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

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

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

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

openssl x509 -req -days 365 -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 工具所管理

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

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

1、 生成客户端证书:

openssl pkcs12 -export -clcerts -name cas-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 使用;

openssl pkcs12 -export -clcerts -name cas-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 -alias cas.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 -storetype pkcs12 -v

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

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

推荐阅读:
  1. OpenSSL自建CA和CA链,给主机签发证书的批处理(使用
  2. SSL/TLS深度解析--在Nginx上配置证书链及多域名证书

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:如何进行Bitbucket服务与数据中心远程代码执行漏洞通告

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》