lupguo/ss实施自签名证书
ss-cert
该仓库记载了 Public Key Infrastructure(PKI) ,公开密钥底子办法中的部分流程,包括自署名证书、证书请求、证书签发、证书验证等内容。
pki
目次是基于Golang程序实现了上述内容(试验性的)
OpenSSL 自署名证书创建
除非先前将自署名证书导入browser,不然不会向任何第三方验证自署名证书。假如需要更高的安全性,则应使用由证书颁发机构(CA)署名的证书。
我们基于以下步骤创建自己的CA和署名证书
- 创建自己的权限(即成为CA)
- 为服务器创建证书署名请求(CSR)
- 使用CA密钥对服务器的CSR进行署名
- 在服务器上安装服务器证书
- 在客户端上安装CA证书
大抵的步骤
Using the x509 module openssl x509 ... ...
Using the req module openssl req ...
Using the ca module openssl ca ... ...
创建CA Certificate
// 基于config天生CA证书 $ cd ca_cert $ openssl req -x509 -config ../openssl-ca.cnf -nodes -newkey rsa:2048 -days 3650 \ -keyout cakey.pem -out cacert.pem // 检测天生的CA证书 $ openssl x509 -in cacert.pem -noout -text
创建CSR(证书请求)
先回到根目次,在csr目次中,实行下列操作:
// 方法1,基于openssl-server.cnf证书请求模板设置文件, 创建预申请的服务器证书请求 $ cd ./sign_csr/ $ openssl req -config openssl-server.cnf -newkey rsa:2048 -nodes -keyout server-key.pem -out server-csr.pem // 方法2,直接快速创建服务器证书请求(设置中以及有许多基本信息的设置了,好比信息摘要摘要算法等) $ openssl req -newkey rsa:2048 -nodes -keyout ./sign_csr/server-key.pem -out ./sign_csr/server-csr.pem \ -subj "/C=CN/ST=GD/L=ShenZhen/O=GlobaleGrow Inc./OU=Tech Development./CN=TK Server Development/emailAddress=tkstorm1988@gmail.com" \ -reqexts SAN -extensions SAN \ -config <(cat /etc/ssl/openssl.cnf <(printf "\n[SAN]\nsubjectAltName=IP:127.0.0.1,DNS:localhost,DNS:www.tkstorm.cc,DNS:tkstorm.cc,DNS:::1")) // 察看天生的证书请求 $ openssl req -in ./server-csr.pem -text -noout
SAN部分的信息
X509v3 Subject Alternative Name: DNS:tkstorm.cc, DNS:www.tkstorm.cc, DNS:mail.tkstorm.cc
使用CA签发CSR
初始化相关文件
回到ca设置文件地点目次:
$ touch ./db/db.txt $ echo '01' > ./db/serial.txt
证书签发
方法1,基于openssl ca下令+设置(建议)
基于设置文件
openssl-ca.cnf
(此中已设定了CA证书+私钥等信息),选择签发策略,对创建的证书请求进行证书签发
// 签发服务器证书 $ openssl ca -config openssl-ca.cnf -policy signing_policy -extensions signing_req -infiles ./sign_csr/server-csr.pem // 察看证书 $ openssl x509 -in ./sign_cert/02.pem -text -noout
方法2,基于openssl x509下令签发
// 签发 (./sign_cert/01.pem为签发的证书) $ openssl x509 -req -in ./sign_csr/server-csr.pem -CA ./ca_cert/cacert.pem -CAkey ./ca_cert/cakey.pem -create_serial -out ./sign_cert/01.pem // 验证 $ openssl verify -CAfile ./ca_cert/cacert.pem -verbose ./sign_cert/01.pem ./sign_cert/01.pem: OK
证书和私钥验证
// 对比openssl md5的差别 openssl x509 -noout -modulus -in tkstorm-cert.pem|openssl md5; \ openssl rsa -noout -modulus -in tkstorm-key.pem | openssl md5 // csr证书请求也可以基于类似的方法 openssl req -noout -modulus -in server.csr | openssl md5
项目目次
所有停当后,目次如下
/data/github.com/ss-cert on master! ⌚ 13:13:13 $ tree . ├── README.md ├── ca_cert │ ├── cacert.pem │ └── cakey.pem ├── db │ ├── db.txt │ ├── db.txt.attr │ ├── db.txt.old │ ├── serial.txt │ └── serial.txt.old ├── openssl-ca.cnf ---- ca sign config file ├── sign_cert │ └── 01.pem ---- new signed certificates └── sign_csr ├── openssl-server.cnf ---- server sign request config file ├── server-csr.pem └── server-key.pem
将CA证书天生的pkcs #12格式(捆绑私钥和公钥)
在密码学中,PKCS #12 定义了一种存档文件格式,用于实现存储很多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的X.509 证书,要么打包信托链的全部项目。 一个 PKCS #12 文件通常是被加密的,同时单独存在。其被称作"安全包裹"的内部存储容器通常同时也被加密及单独存在。
$ openssl pkcs12 -in cacert.pem -inkey cakey.pem -export -out cacert.p12
基于CA已有的私钥,天生新的CA证书(应对质书续签问题)
// 基于设置和已有的cakey,天生一个CA CSR openssl req -new -config ../openssl-ca.cnf -nodes -key cakey.pem -out cacsr.pem // 签发自署名证书 $ openssl x509 -req -in cacsr.pem -signkey cakey.pem -out cacert.pem Signature ok subject=/C=CN/ST=GD/L=ShenZhen/O=NGTK Inc./OU=NGTK ORG (tkstrom.com)/CN=TK.ROOT CA/emailAddress=tkstorm1988@gmail.com Getting Private key // 察看证书时间 $ openssl x509 -in cacert.pem -text // 重新天生pkcs#12证书格式 $ openssl pkcs12 -in cacert.pem -inkey cakey.pem -export -out cacert.p12
更多细节
参考 https://tkstorm.com/openssl-usages
acgpower自签证书
Avalanche powered by Wavelink
创建自署名证书
这些说明讲明怎样使用 OpenSSL 天生自署名证书。Ivanti 未在 Avalanche 中包含 OpenSSL。可在 OpenSSL 网站 上找到安装文件。假如要使用其他工具,请参考该工具的用户指南。
Ivanti 猛烈提议使用证书颁发机构提供的证书来葆护 Avalanche 的通讯。使用自署名证书大概导致以下问题:
• 假如在 Web 控制台中使用自署名证书,则 Web browser大概无法辨认证书,而且表现声称站点不受信托的告诫消息。browser大概要求创建破例以进行连接。但是会对连接进行加密。
• 假如在智能装备服务器中使用自署名证书,则 Android 装备会拒绝注册,由于它们无法辨认证书。对于运行 Android 4.0 或更新版本的装备,可以在每台装备上安装自署名证书。运行 Android 4.0 之前的版本的装备不会连!接到使用自署名证书的服务器。要在 Android 装备上安装证书,需要先设置证书,然后在装备上打开browser并导航至 iOS 注册页面。在页面上轻触 信托该服务器 ,然后下载证书。下载证书后,可以封闭browser。
有关从证书颁发机构获取证书的说明,请参阅 SSL 证书 中的 向证书颁发机构创建证书请求 。
假如正在使用智能装备服务器的证书,则需要这些说明中给出的文件名,比方
privateKey.key
和
ca.pem
。
创建证书时,需要提供通用名(比方 IP 地点)、组织单位、组织、都市、州/省,以及国度/地域代码。
要天生智能装备服务器使用的自署名证书:
1. 从下令行导航至:
[OpenSSL 安装目次]\bin
2.
使用下令:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out ca.pem
3. 在提示符处输入全部请求的信息。提供计划安装证书的盘算机的完全限定域名以用作通用名。使用的域名应该由贵公司全部。假如需要,可添加 DNS 条目以剖析此盘算机。
天生自署名证书的示例:
国度/地域名称(二位字母代码)[]:US
州或省名称(全名)[]:Utah
地点地名称(比方都市)[]:Midvale
组织名称(比方公司)[]:Wavelink Corporation
组织单位名称(比方部分)[]:Engineering
通用名(比方姓名或服务器主机名)[]:avaself.wavelink.com
电子邮件地点 []: [email protected]
随即在 \bin 目次中创建证书 ca.pem 。
为了导入证书并在控制台和 Avalanche 长途控制中使用证书,需要将其转换为 PKCS #12 格式。有关转换证书的信息,请参阅 SSL 证书 中的 转换证书 。
版权 © 2018 , Ivanti . 版权全部。
隐私和法律默认自署名证书的过期通知
当前的行为 :Oracle ILOM 提供了较早版本的默认 SSL 自署名证书。
未来的行为 :未来的 Oracle ILOM 固件发行版中将提供较新版本!的默认 SSL 自署名证书。
对客户设置的影响 :
更新到未来的固件发行版后,通过 Web 界面连接到 Oracle ILOM 的用户将需要担当 Oracle !ILOM 提供的较新版本的默认 SSL 自署名证书。此变动不会影响客户提供的 SSL 证书。
有关 Oracle ILOM 提供的默认 SSL 自署名证书的未来更新,请参阅《 Oracle ILOM 功能更新和发行说明(固件发行版 3.2.x) 》中的最新固件发行版信息。
本文网址: http://www.6vho.com/page/202102818328_248_4210104600/home