https证书的制作

Tags: cryptography 

目录

说明

在制作证书的过程了,为了避免多次手动输入,可以使用配置文件-config configfile

系统中存在一个可以作为参照的配置文件:

/etc/pki/tls/openssl.cnf

下面的过程在make certs methord1中实现了:

methord1是最简单的方式,制作自签署的根证书,然后签署服务证书。

OpenSSL Certificate Authority中的做法在make certs methord2中实现了:

制作一个自签署的根证书
制作一个用根证书签署的中间证书
用中间证书签署服务证书

准备根证书

生成1024位的私钥,man genrsa

openssl genrsa -out root.key 1024               

生成证书签署请求, 会提示输入证书相关信息, 注意输入的域名或hostname,man req

openssl req -new -key root.key -out root.csr

    //这一步会提示输入证书信息, 注意Common Name要输入正确, 如下:
        Common Name (eg, your name or your server's hostname) []:192.168.88.130
    //或者使用通配符, 如下
        Common Name (eg, your name or your server's hostname) []:*.baidu.com

自签署证书,-signkey表示进行自签署,man x509

openssl x509 -req -days 365 -in root.csr -signkey root.key -out root.crt

查看证书的内容:

openssl x509 -in root.crt -noout -text

也可以使用下面的命令,一步生成:

openssl req  -nodes -new -x509 -days 365 -keyout root.key -out root.crt

可以参考create_root_cert.sh中的根证书的制作。

导入浏览器

firefox:

选项  -> 高级 -> 证书 -> 查看证书 -> 证书机构 -> 导入 -> 勾选信任项 -> 确认

用根证书签署证书

制作key,man genrsa:

openssl genrsa -out server.key 1024               

制作签署请求,man req:

openssl req -new -key server.key -out server.csr

签署,man x509:

openssl x509 -req -days 365 -in server.csr -CA root.crt -CAkey root.key -CAcreateserial -out server.crt

注意用根证书签署证书时的命令和自签署时的命令是不同的,根证书签署时使用的是-CA,-CAkey,自签署时使用的是-signkey

如果绑定的是IP,并且有多个

通过-extfile,设置subjectAltName属性:

$echo "subjectAltName = IP:10.42.0.1,IP:127.0.0.1" > /tmp/extfile
$openssl x509 -req -days 365 -in server.csr -CA root.crt -CAkey root.key -CAcreateserial -out server.crt  -extfile /tmp/extfile

校验证书

openssl verify  -CAfile /etc/kubernetes/pki/ca.pem /etc/cni/net.d/calico-tls/etcd-cert

使用CFSSL工具

CFSSL是CloudFlare开发的用于管理TLS/SSL证书的工具,该工具是开源的,源码

cfssl既可以作为命令行工具使用,也可以作为一个服务:

cfssl bundle -cert mycert.crt
# 服务
cfssl serve

参考

  1. setting-openssl-create-certificates
  2. OpenSSL Certificate Authority
  3. make certs methord1
  4. make certs methord2
  5. Introducing CFSSL - CloudFlare’s PKI toolkit
  6. github: cloudflare/cfssl

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球