linux下 openssl证书签发

在linux已经集成了openssl组件,因此博主利用例子讲解如何在linux系统下签发证书,因为个人证书时不受谷歌浏览器认可的,所以自签发证书只能在火狐浏览器下测试使用!

1 openssl证书生成流程

linux下 openssl证书签发_第1张图片
生成完毕之后还需要将证书转换成java可以使用的证书格式,然后再tomcat中进行配置
本次默认的几个配置:

  • ca服务器证书保存目录 /src/ftp/cas
  • 服务器主机证书保存目录 /src/ftp/cas/server
  • 客户端主机证书保存目录 /src/ftp/cas/client
  • java证书保存目录 /usr/local/tomcat/
  • 生成证书时的密码: hejiejava
  • 虚拟域名:cas.com

因为生成证书的过程中,主要是命令比较复杂,步骤则比较清晰简单,所有大家在创建好相应路径的文件夹之后,只需要复制黏贴命令就好了!

话不多说直接开始!

1.1 ca服务器证书生成(根证书)

  • 创建一个ras编码的CA密钥 保存在/srv/ftp/cas 目录下面,字节长度为2048

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

  • 生成根证书的签发申请,这里使用的服务器域名为cas.com,也可在/etc/hosts/设置虚拟域名,因为证书访问时必须要用域名的形式访问。

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

  • 生成根证书的签发申请,有效期为10年

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

1.2 服务器端证书

  • 生成服务器密钥 保存在/srv/ftp/cas/server 目录下,密码为hejiejava

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

  • 生成服务器端的签发申请,创建时需要输入上一步的密码

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

-生成服务器端证书的签发申请,时间为10年(要在cas文件夹下面使用命令)

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

1.3客户端证书

  • 客户端证书申请操作

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

  • 客户端的证书签发申请

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

  • 客户端的证书签发申请,有效期为10年

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有效

1.4生成Java证书

  • 生成客户端的证书,是发送给客户端浏览器的。需要提前安装tomcat,输入密码为:hejiejava

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

  • 生成服务器的证书,主要是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

  • 在本机系统中导入信任证书,随后会在tomcat文件夹中生成ca-trust.p12证书文件,注意修改成自己本地tomcat路径,输入命令之后需要输入密码,然后在弹出的验证中输入yes (注意这句命令的tomcat路径,需要修改成你本机的tomcat路径)

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

  • 使用keytool工具查看证书信息

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

1.5 在tomcat的conf文件下配置认证

在tomcat中conf目录下的server配置下面的认证:

  • 修改conf中server.xml的端口为80端口
  • 将下面单项认证或者双向认证中的一项复制黏贴到server.xml中,建议单项认证进行测试,博主也会在下面给出测试例子!

1.5.1 单向认证

其中需要注意的是keystorefile和keystorepass分别为路径和密码


1.5.2 双向认证


2 单项认证测试

2.1 重启tomcat

  • 配置好tomcat文件后,需用进行重启tomcat,进入tomcat的bin目录下,

./catalina.sh stop
./catalina.sh start

2.2 在windows设置虚拟域名

然后在windows主机上设置虚拟域名:
路径:C:\Windows\System32\drivers\etc
修改hosts文件:
linux下 openssl证书签发_第2张图片

linux下 openssl证书签发_第3张图片

2.3 设置火狐浏览器的证书认证

  • 将linux生成的这个文件导入到本地
    linux下 openssl证书签发_第4张图片
  • 向火狐浏览器导入证书认证
    linux下 openssl证书签发_第5张图片

linux下 openssl证书签发_第6张图片

  • 将所有选项勾选信任即可!

然后大家就可以通过
https://cas.com 安全访问自己配置好的虚拟机啦!

完成以上操作之后就说明自签发证书成功!

你可能感兴趣的:(linux)