openssl制作证书全过程及https实现 证书格式说明 准备工作 证书制作 Apache Tomcat验证 参考博客

  • 带有私钥的证书 PKCS12(P12):包含了公钥和私钥的二进制格式的证书形式,以 pfx 作为证书文件后缀名。
  • 二进制编码的证书(DER):证书中没有私钥,DER 编码二进制格式的证书文件,以 .cer 作为证书文件后缀名。
  • Base64 编码的证书(PEM):证书中没有私钥,Base64 编码格式的证书文件,也是以 .cer 作为证书文件后缀名。

准备工作

  • 环境:win10
  • 软件:openssl、tomcat
  • 准备工作:tomcat环境配置(包括jdk);下载openssl工具到本地,解压后,在bin目录下新建三个文件夹,分别为ca、client、server。

注意:下文采取的是SSL双向认证,故制作了客户端的证书,如果想要实现单项认证,则只需CA证书及server证书。

证书制作

生成CA证书

  • 创建私钥 genrsa -out ca/ca-key.pem 1024
  • 创建证书请求 req -new -out ca/ca-req.csr -key ca/ca-key.pem
  • 自签署证书 x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
  • 转换证书格式 pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客

生成server证书

tips : common name 填 写 本 地 IP 地 址 !【图中箭头部分】

  • 创建私钥 genrsa -out server/server-key.pem 1024
  • 创建证书请求 req -new -out server/server-req.csr -key server/server-key.pem
  • 自签署证书 x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
  • 转换证书格式 pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客

生成client证书

  • 创建私钥 genrsa -out client/client-key.pem 102
  • 创建证书请求 req -new -out client/client-req.csr -key client/client-key.pem
  • 自签署证书 x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
  • 转换证书格式 pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客

根据ca证书生成jks文件

tips : 换!路!径!【jdk的bin目录下输入命令】

  • 在openssl的bin目录下新建jks文件夹 keytool -keystore C:OpenSSL-Win64injks ruststore.jks -keypass 222222 -storepass 222222 -alias ca -import -trustcacerts -file C:OpenSSL-Win64incaca-cert.pem
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客

Apache Tomcat验证

配置Tomcat

  • 修改tomcat的配置文件(conf/server.xml)添加一个新的connector,内容如下(tips:注:keystoreFile对应server端的jks文件,keystorePass对应其密码)
    tips : 两 个 storefile 的 路 径 一 定 要 对 ,不 然 会 落 泪
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
    maxThreads="150" scheme="https" secure="true" 
    clientAuth="true" sslProtocol="TLS" 
    keystoreFile="C:OpenSSL-Win64inserverserver.p12" keystorePass="changeit" keystoreType="PKCS12"  
    truststoreFile="C:OpenSSL-Win64injks	ruststore.jks" truststorePass="222222" truststoreType="JKS"/>
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客

在浏览器导入证书

  • 将ca.p12,client.p12分别导入到IE中去(打开IE->Internet选项->内容->证书)。
    ca.p12导入至受信任的根证书颁发机构,client.p12导入至个人。
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客

验证

  • 访问https://192.168.0.6:8443,提示是否确认证书,确认后成功访问,点击小锁查看证书。
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客
openssl制作证书全过程及https实现
证书格式说明
准备工作
证书制作
Apache Tomcat验证
参考博客

参考博客

Windows下使用OpenSSL生成自签证书
CA认证过程及https实现方法之Linux