码迷,mamicode.com
首页 > Web开发 > 详细

openssl制作证书全过程及https实现

时间:2020-03-14 13:00:17      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:window   import   https   ssl   ebe   comm   验证   输入   net   

证书格式说明

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

准备工作

  • 环境:win10
  • 软件:openssl、tomcat
  • 准备工作:tomcat环境配置(包括jdk);下载openssl工具到本地,解压后,在bin目录下新建三个文件夹,分别为ca、client、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
技术图片

生成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
技术图片

生成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
技术图片

根据ca证书生成jks文件

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

  • 在openssl的bin目录下新建jks文件夹 keytool -keystore C:\OpenSSL-Win64\bin\jks\truststore.jks -keypass 222222 -storepass 222222 -alias ca -import -trustcacerts -file C:\OpenSSL-Win64\bin\ca\ca-cert.pem
技术图片

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-Win64\bin\server\server.p12" keystorePass="changeit" keystoreType="PKCS12"  
    truststoreFile="C:\OpenSSL-Win64\bin\jks\truststore.jks" truststorePass="222222" truststoreType="JKS"/>
技术图片

在浏览器导入证书

  • 将ca.p12,client.p12分别导入到IE中去(打开IE->Internet选项->内容->证书)。
    ca.p12导入至受信任的根证书颁发机构,client.p12导入至个人。
    技术图片

    技术图片

验证

  • 访问https://192.168.0.6:8443,提示是否确认证书,确认后成功访问,点击小锁查看证书。
    技术图片

    技术图片

    技术图片

    技术图片

    技术图片

参考博客

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

openssl制作证书全过程及https实现

标签:window   import   https   ssl   ebe   comm   验证   输入   net   

原文地址:https://www.cnblogs.com/poziiey/p/12491214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!