OpenSSL生成证书流程
1.什么是SSL证书?
首先来了解下,现在HTTP协议中为什么增加了SSL证书,HTTP协议以明问发送请求
在传递数据的过程中可能被黑客进行监听和盗取,是极度不安全的,所以产生了HTTPS协议,HTTPS协议可以看成是HTTP+SSL的结合体
网站实现加密传输
用户通过http协议访问网站时,浏览器和服务器之间是明文传输,这就意味着用户填写的密码、帐号、交易记录等机密信息都是明文,随时可能被泄露、窃取、篡改,被黑客加以利用。网站安装SSL证书后,使用https加密协议访问网站,可激活客户端浏览器到网站服务器之间的"SSL加密通道"(SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改。
认证服务器真实身份
钓鱼欺诈网站泛滥,用户如何识别网站是钓鱼网站还是安全网站?网站部署全球信任的SSL证书后,浏览器内置安全机制,实时查验证书状态,通过浏览器向用户展示网站认证信息,让用户轻松识别网站真实身份,防止钓鱼网站仿冒。
2.SSL的验证流程
此图片来自网络
3.利用openssl环境自制证书
流程图
CA服务器操作
1.查看LIUNX下是否安装openssl环境
openssl
出现>oepnssl说明已经安装成功环境
2.生成CA密钥对
mkdir $HOME/ssl
cd $HOME/ssl
openssl genrsa -out /srv/ftp/cas/cakey.pem 2048 RSA
生成了2048个字节的密钥
3.生成根证书签发申请
openssl req -new -key /srv/ftp/cas/cakey.pem -out /srv/ftp/cas/cacert.csr -subj /CN=cas.com
4.根证书签发
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
设置了一个x509的证书生成,证书的有效时间为3650天
表明申请成功
服务器主机操作
1.服务器主机证书的生成需要利用CA服务器根证书,为了区分两台服务器,创建一个
新的文件夹,用于保存服务器主机的文件
mkdir -p /srv/ftp/cas/server
2.生成服务器私钥
openssl genrsa -aes256 -out /srv/ftp/cas/server/server-key.pem 2048
在生成私钥的时候会让你输入一个密码,这个密码不能太短,否则会提示错误
暂且设置为sheng123
3.生成服务器端的签发声明
openssl req -new -key /srv/ftp/cas/server/server-key.pem -out /srv/ftp/cas/server/server.csr -subj /CN=cas.com
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
签发申请,有效期10年
客户端的证书签发
1.创建客户端信息保存目录
mkdir -p /srv/ftp/cas/client
2.生成客户端私钥
openssl genrsa -aes256 -out /srv/ftp/cas/client/client-key.pem 2048
会出现密码设置,暂且设为sheng123
3.申请签发客户端证书
openssl req -new -key /srv/ftp/cas/client/client-key.pem -out /srv/ftp/cas/client/client.csr -subj /CN=cas.com
4.生成客户端证书
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有效
4.生成Java证书
前面步骤使用openssl生成了数字证书和私钥,要是想在java环境下使用,要想在Java下进行使用,必须将其转化为"PKCS#12"的编码格式的密钥库才可以被java的keytool工具去管理使用
所以我们要讲openssl生成的转化为Java证书,此时Java端的证书由于要在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.生成服务器端证书
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进行使用
3.将生成的服务器端证书导入本机的受信任证书中
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
https://blog.csdn.net/qq_42549122/article/details/90266920