当前的网络浏览器带有由证书颁发机构颁发和签名的预安装中间证书。

密钥算法

  • RSA 1024: 不安全
  • RSA 2048[网站常用]: 安全
  • RSA 4096: 根CA与中间CA使用
    • 尽管4096位比2048位更安全,但它会减慢TLS握手速度并显着增加握手期间的处理器负载。因此,大多数网站使用2048位对。
  • 椭圆曲线 ECC [推荐]: 安全, 速度快, 且密钥尺寸小很多
    • 256位的ECC安全效果等同于 3072位的RSA

注意

  • 更安全的做法, 使用中间CA来颁发审核通过的证书:

    • 创建证书链文件: 我们的证书链文件必须包含根证书,因为尚无客户端应用程序知道该证书。更好的选择(尤其是在管理Intranet的情况下)是在需要连接的每个客户端上安装根证书。在这种情况下,链文件仅需要包含您的中间证书。
    • cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem
  • 使用私钥创建证书签名请求(CSR): 对于服务器证书,“ 公用名”必须是完全限定的域名(例如www.example.com ),而对于客户端证书,“ 公用名”可以是任何唯一标识符(例如,电子邮件地址)。请注意,公用名不能与您的根证书或中间证书相同。
  • 通常 根CA证书有效期 20年(-days 7300), 中间CA证书有效期10年(-days 3650), 服务器或客户端证书1年多几天(-days 375)
  • 要创建证书,请使用中间CA对CSR进行签名。如果证书将在服务器上使用,请使用server_cert扩展名。如果证书将用于用户身份验证,请使用 usr_cert扩展名
    • -extensions server_cert
    • -extensions usr_cert

ECC [推荐]

  • secp256k1 (握手时会报错)
  • prime256v1 == secp256r1 (不安全: 棱镜门)
  • secp384r1 [推荐]

用根ca颁发的服务器证书

# CA证书及密钥生成方法----直接生成CA密钥及其自签名证书(有效期3650天)
openssl req -newkey ec:<(openssl ecparam -name secp384r1) -nodes -keyout ca-prikey.pem -x509 -days 3650 -out ca-cert.pem -subj "/C=CN/ST=shanghai/L=shanghai/O=XENIRO/OU=Snapscale/CN=Root CA/emailAddress=ryan.wu@xeniro.io"# 服务器证书及密钥生成方法----直接生成服务器密钥及待签名证书
# 注意: CN 一定要写服务器所在的ip地址(本地测试用 本地测试127.0.0.1)或域名
openssl req -newkey ec:<(openssl ecparam -name secp384r1) -nodes -keyout node-prikey.pem  -out node-req.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=XENIRO/OU=Snapscale/CN=127.0.0.1/emailAddress=ryan.wu@xeniro.io"# 使用CA证书及密钥对服务器证书进行签名(有效期3650天):
openssl x509 -req -days 3650 -in node-req.csr -CA ca-cert.pem -CAkey ca-prikey.pem -CAcreateserial -out node-cert.pem# 客户端证书及密钥生成方法----直接生成客户端密钥及待签名证书
# CN  可以填平台账户名或链上账户名
openssl req -newkey ec:<(openssl ecparam -name secp384r1) -nodes -keyout client-prikey.pem -out client-req.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=XENIRO/OU=Snapscale/CN=CLIENT/emailAddress=ryan.wu@xeniro.io"# 使用CA证书及密钥对客户端证书进行签名(有效期3650天):
openssl x509 -req -days 3650 -in client-req.csr -CA ca-cert.pem -CAkey ca-prikey.pem -CAcreateserial -out client-cert.pem

RSA 2048

用根ca颁发的服务器证书

# CA证书及密钥生成方法----直接生成CA密钥及其自签名证书(有效期3650天)
openssl req -newkey rsa:2048 -nodes -keyout ca-prikey.pem -x509 -days 3650 -out ca-cert.pem -subj "/C=CN/ST=shanghai/L=shanghai/O=XENIRO/OU=Snapscale/CN=Root CA/emailAddress=ryan.wu@xeniro.io"# 服务器证书及密钥生成方法----直接生成服务器密钥及待签名证书
# 注意: CN 一定要写服务器所在的ip地址(本地测试用 本地测试127.0.0.1)或域名
openssl req -newkey rsa:2048 -nodes -keyout node-prikey.pem  -out node-req.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=XENIRO/OU=Snapscale/CN=127.0.0.1/emailAddress=ryan.wu@xeniro.io"# 使用CA证书及密钥对服务器证书进行签名(有效期3650天):
openssl x509 -req -days 3650 -in node-req.csr -CA ca-cert.pem -CAkey ca-prikey.pem -CAcreateserial -out node-cert.pem# 客户端证书及密钥生成方法----直接生成客户端密钥及待签名证书
# CN  可以填平台账户名或链上账户名
openssl req -newkey rsa:2048 -nodes -keyout client-prikey.pem -out client-req.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=XENIRO/OU=Snapscale/CN=CLIENT/emailAddress=ryan.wu@xeniro.io"# 使用CA证书及密钥对客户端证书进行签名(有效期3650天):
openssl x509 -req -days 3650 -in client-req.csr -CA ca-cert.pem -CAkey ca-prikey.pem -CAcreateserial -out client-cert.pem

往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列

联盟链系列 - RootCA颁发证书相关推荐

  1. 联盟链系列 - 联盟许可链开发框架

    对于许可链,三种区块链协议已成为首选:Hyperledger Fabric,Enterprise Ethereum和R3 Corda.Fabric和企业以太坊都是任何行业的通用工具,而Corda是为金 ...

  2. 联盟链系列 - 公链与联盟链的区别

    联盟链 对节点准入进行限制,只允许特定节点参与的区块链 联盟链的共识模型移除了代币系统,其维护共识稳定的基石实际上为参与节点的信用背书 联盟链底层平台的核心是: 性能,可用性和安全隐私(可监管) 联盟 ...

  3. ca 自建 颁发证书_openssl自建CA后颁发证书

    一 自签证书实践 在介绍颁发证书之前先做一个试验,用自签证书来通过chrome访问: 1 通过openssl一键自签证书,生成证书和私钥: sudo openssl req -x509 -nodes ...

  4. 使用Windows 2008证书服务器为智能卡颁发证书

    在以前的文章中,我介绍过,使用Windows Server 2003(Active Directory.企业证书服务器).ISA Server 2006组建使用"智能卡"进行身份验 ...

  5. 使用openssl给web站点颁发证书

    背景介绍 在生产环境中,有时会需要用到自签名的证书,而谷歌浏览器从2016年开始就降低了sha1的算法级别,openssl默认使用的是sha1的算法,以下就来介绍openssl如何使用sha256的加 ...

  6. openssl创建CA、申请证书及其给web服务颁发证书

    一.创建私有的CA   1)查看openssl的配置文件:/etc/pki/tls/openssl.cnf   2)创建所需的文件 touch /etc/pki/CA/index.txt   echo ...

  7. Linux下openSSL安装并颁发证书

    转载,原文出处:https://www.cnblogs.com/zgxblog/p/13696139.html 一.openssl检查安装 1.查看系统是否安装:openssl version -a ...

  8. rhel6.3下使用openssl来生成CA证书并颁发证书实例解析

    一.配置OPENSSL [root@test1 /]# rpm -qa|grep openssl openssl-1.0.0-20.el6_2.5.i686 [root@test1 /]# cd /e ...

  9. ca 自建 颁发证书_自建 ca 及使用 ca 颁发证书

    创建CA: 一.安装openssl [root@localhost ~]# yum install -y openssl 二.创建CA的相关文件及目录 mkdir /opt/root_ca & ...

最新文章

  1. Linux用户权限管理
  2. 突袭HTML5之SVG 2D入门1 - SVG综述
  3. SQLite的事务处理方式
  4. MySQL5.6 选项和变量整理
  5. SpringCloud注册与发现Eureka
  6. 用Python快速找到出现次数最多的数据
  7. 关于Swift中的forEach(_:)和for-in loop
  8. q87主板支持cpu型号_INTEL的10代和9代的区别,型号和价格都有哪些,入手哪个性价比高...
  9. 2018年9月8日 笔试小结
  10. Clojure 学习入门(13)- binding
  11. Navicat for MySQL 连接 Mysql 8.0.16 时报错1251- Client does not support.....的解决办法
  12. 心理声学模型在感知音频编码中的应用
  13. 图扑软件携手华为云再创合作共赢新局面
  14. 计算机专业毕业生的就业政策,计算机专业毕业生就业情况分析及应对策略
  15. Python中使用print函数的三种输出方式
  16. M2BEV:采用统一BEV表征的多摄像头联合3D检测分割
  17. Drone 自定义 UI
  18. Linux差异备份的脚本,linux 差异备份 增量备份
  19. 发送验证码-阿里云短信服务
  20. MAC必装软件之HomeBrew、HomeBrew-Cask

热门文章

  1. MySQL学习教程(超全)
  2. 攻防世界_Crypto_Decrypt-the-Message
  3. 音乐平台程序源码分享
  4. 华为防火墙ftp_华为防火墙如何配置ftp服务器映射到外网
  5. java项目开发实践 pdf_Java项目开发实践 覃遵跃.pdf
  6. C语言问题:0xC0000005: 写入位置 0xFFFFFFCC 时发生访问冲突。
  7. cygwin和mingw的比较
  8. Java线程池(超详细)
  9. 计算机网络常见名词及其解释
  10. 移动开发的项目管理心得