这篇文章主要介绍“在Linux系统怎么实现证书签发”,在日常操作中,相信很多人在在Linux系统怎么实现证书签发问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Linux系统怎么实现证书签发”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
具体内容
在Linux系统里面已经集成了OpenSSL组件,但是考虑到本次生成的操作的步骤异常的复杂,所以强烈建议搭建拷贝我给出完整的配置。整个生成完毕之后还需要将证书转换为 Java 可以使用的证书格式,而后才可以在 Tomcat 中进行配置。本次的开发为了方便的进行证书的下载,直接将所有的证书就生成在 ftp 指定的目录下(/srv/ftp)为了方便保存,建立一个保存所有证书的文件夹:mkdir -p /srv/ftp/cas
2.1、签发根证书
本次生成的证书为根证书,那么将根证书保存在“/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、签发服务器端证书
为了与根证书的保存区分,建议建立一个目录: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、签发客户端证书
建立一个目录保存客户端证书信息: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 工具所管理
前提:此时 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系统怎么实现证书签发”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。