• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

CA签名SSL证书和自签名SSL证书的生成

JAVA web前端中文站 2年前 (2017-09-26) 834次浏览 已收录 0个评论

所谓自签名证书,就是自己颁发给自己的证书 ,所以颁证的主体是不可信任的。

更多精彩内容请看 web 前端中文站
http://www.lisa33xiaoq.net 可按 Ctrl + D 进行收藏

自签证书是不会被浏览器信任的证书的,用户在访问自签证书时,浏览器会警告用户此证书不受信任,需要人工确认是否信任此证书,如下图:

CA 签名 SSL 证书和自签名 SSL 证书的生成

既然自签证书是不可信任的,那为何还有人包括 12306 也在用自签证书呢?

主要原因是:

  1. 自签证书是免费的 
  2. 自签证书相对申请 CA 证书,流程更简单 
  3. 自签证书同样可以对数据进行加密 
  4. 自签证书的有效期可以设置很长,免去续签的麻烦 
  5. 自签证书更方便测试,比如说你想生成多少个不同服务器 ip 的都可以 

所以对于一些个人开发者来说使用自签证书可能会更方便,只要你能接受别人浏览你网站时弹出的提醒:不安全。

CA 签名 SSL 证书

相对自签证书的自己给自己颁证,由权威的证书授权机构(Certificate Authority)颁发的签名证书,我们称之为:CA 证书。

CA 证书保证书持有者的身份和公钥的拥有权。浏览器对 CA 证书是信任的,如下图:

CA 签名 SSL 证书和自签名 SSL 证书的生成

自签名 SSL 证书的生成

自签证书虽然提示:不安全。但还是有很多上面已提到的好处,所以下面先说说自签证书的生成,主要使用 Java JDK 下的:keytool.exe。

先下载安装 Java JDK。

安装完后,根据实际的路径找到 keytool.exe,如我的在此路径:D:/Program Files (x86)/Java/jdk1.8.0_101/bin/keytool.exe。

生成 keystore。打开命令行(cmd),去到 keytool 所在的路径,运行:

 keytool -genkey -alias tomcat   -storetype PKCS12 -keyalg RSA  -keysize 2048  -keystore d:/mykeystore/keystore.p12  -validity 3650  -ext san=ip:192.168.100.132  -dname "CN=garyyan, OU=mycompany, O=mycompany, L=gd, ST=gd, C=china"

此命令中间只需要输入密码,就能生成 keystore,假设密码是:123456。

参数解释

  1. keystore 可理解为一个数据库,可以存很多个组数据。 每组数据主要包含下面两种数据:a:密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密);b:可信任的证书实体(trusted certificate entries)——只包含公钥。
  2. -keystore d:/mykeystore/keystore.p12,指定在 d:/mykeystore(先要手动创建此文件夹),生成 keystore:keystore.p12
  3. -alias tomcat,为其指明在 keystore 中的唯一的别名:tomcat ,因为 keystore 中可能还存有其它的别名,如:tomcat 2
  4. -storetype PKCS12 指明密钥仓库类型是 PKCS12
  5. -keyalg RSA,指定加密算法,本例中的采用通用的 RAS 加密算法
  6. -keysize 2048 指定密钥的长度为 2048
  7. -validity 3650 指定证书的有效期为 3650 天
  8. -ext san=ip:192.168.100.132 请根据你的服务器的 IP 地址设置,如果不进行设置,客户端在访问的时候可能会报错
  9. -dname “CN=garyyan, OU=mycompany,O=mycompany,L=gd, ST=gd, C=china”。其中:”CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)”,我在测试的过程中发现随便填就行

导出公钥证书

运行如下命令:

 keytool -export -keystore d:/mykeystore/keystore.p12  -alias tomcat -file mycer.cer -storepass 123456

参数解释

  • -keystore d:/mykeystore/keystore.p12 是指上面的 keystore 文件 
  • -alias tomcat 是指定别名为 tomcat 的那一组 
  • -file mycer.cer 指定在当前目录生成名为 mycer.cer 的证书 
  • -storepass 123456 是上面生成 keystore 所用的密码

本文原文出处:web 前端中文站: » CA 签名 SSL 证书和自签名 SSL 证书的生成

【注:本文源自网络文章资源,由站长整理发布】


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CA 签名 SSL 证书和自签名 SSL 证书的生成
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址