-
2021-10-15 15:47:54更多相关内容
-
为 Horizon 7 设置 TLS 证书 的方案
2020-04-19 12:00:46《为 Horizon 7 设置 TLS 证书的方案》提供了一些示例来说明如何设置 TLS 证书以供 Horizon 7 服务器使 用。第一个方案演示如何从证书颁发机构获取签名 TLS 证书,并确保证书具有可供 Horizon 7 Server 使用 的格式... -
适用于所有Go程序的自动HTTPS:完全托管的TLS证书发行和更新-Golang开发
2021-05-26 14:14:51简便而强大的TLS自动化在一...使用CertMagic,您可以在Go应用程序中添加一行,以通过TLS安全地进行服务,而无需接触证书。 代替:// //纯文本HTTP,总值:nauseated_face:http.ListenAndServe(“:80”,mux)使用CertM -
在Kubernetes中自动配置和管理TLS证书-Golang开发
2021-05-26 13:45:29cert-manager cert-manager是Kubernetes的附加组件,用于自动管理和颁发各种发行来源的TLS证书。 它将确保证书有效并定期更新,并尝试对cert-manager进行认证cert-manager是Kubernetes的附加组件,可自动管理和颁发... -
Go-CertificateExpiryMonitorController监视Ingress中使用的TLS证书是否到期
2019-08-14 02:19:44Certificate Expiry Monitor Controller 监视Ingress中使用的TLS证书是否到期 -
certcache:生成,缓存和部署SSLTLS证书的TLS证书服务器
2021-05-12 12:34:56在多个客户端之间安全地共享TLS证书 使用“让我们加密”动态生成证书 通过提供来自缓存的证书来避免让我们对使用限制进行加密 共享从第三方(例如Comodo)手动下载的TLS证书 以声明方式在config中定义证书-在JSON... -
check-tls-certs:用于检查TLS证书的有效期和到期日期的实用程序,用Golang编写
2021-05-17 04:29:15Golang检查TLS证书 这个Heroku Golang应用程序是一个分支,它检查给定主机的SSL证书的到期日期和签名算法。 如果证书在不到30天到期并且如果签名算法已经被警告的消息显示。 用法 如果给定主机的证书在X天内到期,... -
HTTPS之TLS证书
2020-11-16 20:57:13TLS证书格式1. 概述2. 示例:知乎网站证书解析(mac系统)3. 通过openssl获取证书的含义三. 证书链(Certificate Chain)1. 背景2. 概述3. 背景问题的解释参考资料 一. TLS概述 1. TLS概述 TLS 握手的作用之一是...文章目录
一. TLS概述
1. TLS概述
- TLS 握手的作用之一是身份认证),被验证的一方需要提供一个身份证明。在 HTTPS 的世界里,这个身份证明就是 「TLS 证书」,或者称为 「HTTPS 证书」。
-
例如,我们在访问
https://www.youzan.com
时,浏览器会得到一个 TLS 证书,这个数字证书用于证明我们正在访问的网站和证书的持有者是匹配的,否则因为身份认证无法通过,连接也就无法建立。
-
浏览器得到的是一个证书的链表,这个链表叫证书链(Certificate Chain)。
-
2.
HTTPS
协议栈与HTTP
的唯一区别HTTPS
多了一个安全层(Security Layer),即TLS/SSL
。SSL
是最早的安全层协议,TLS
由SSL
发展而来,下面我们统称TLS
。
3. TLS协议版本
OkHttp
是android端最火热的一个轻量级框架,用于替代HttpUrlConnection
和Apache HttpClient
。- 它用一个
enum
类型来表示 TLS 协议的不同版本。可以看到最早的版本是 SSLv3,诞生于 1996 年,最新的版本是 TLSv1.3。
public enum TlsVersion { TLS_1_3("TLSv1.3"), // 2016. (最新的版本) TLS_1_2("TLSv1.2"), // 2008. TLS_1_1("TLSv1.1"), // 2006. TLS_1_0("TLSv1"), // 1999. SSL_3_0("SSLv3"), // 1996.(最早的版本) ; final String javaName; }
二. TLS证书格式
1. 概述
- 所有 CA 机构会遵守
X.509
规范来签发公钥证书(Public Key Certificate),证书内容的语法格式遵守ASN.1
,证书大致包含如下内容:
Certificate Issuer
表示证书的签发者/颁发者。如访问网址https://www.youzan.com
的[*.youzan.com]
证书,它的签发者是它的父节点[GeoTrust RSA CA 2018]
。Issuer
字段的内容是一组符合X.500
规范的DN(Distinguished Name),其中DN是由逗号连接的相对专有名称(RDN,relative distinguished names)的序列。Issuer
通常表示为:
Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=GeoTrust RSA CA 2018
属性名称 属性值 DC domainComponent CN commonName OU organizationUnitName O organizationName STREET streetAddress L localityName ST stateOrProvinceName UID userid 2. 示例:知乎网站证书解析(mac系统)
- 从浏览器导出网站的HTTPS证书到本地文件夹,网址为
https://link.zhihu.com/?target=https%3A//www.youzan.com/
。具体步骤,windows系统可以按照教程 (如何从浏览器导出HTTPS证书)完成,mac系统目前不知道如何导出。 - 将导出的证书文件拖入「Keychain Access」。
- 从 「Keychain Access」中导出证书,格式选择
pem
。
-证书导出包含四种格式。但不知道为什么我导出的cer文件格式openssl解析失败。
证书:Certificate (.cer)
增强保密邮件:Privacy Enhanced Mail (.pem)
证书包Certificate Bundle (.p7b)
个人信息交换:Personal Information Exchange (.p12)- 在
terminal
通过openssl命令
查看证书内容
openssl x509 -in /Users/zijikanwa/*.zhihu.com.pem -text
Certificate: Data: Version: 3 (0x2) Serial Number: 0e:3c:c1:49:94:b3:e1:74:a6:34:54:d9:90:64:66:d7 Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=GeoTrust RSA CA 2018 Validity Not Before: Dec 25 00:00:00 2017 GMT Not After : Dec 24 12:00:00 2020 GMT Subject: C=CN, L=\xE5\x8C\x97\xE4\xBA\xAC\xE5\xB8\x82, O=\xE6\x99\xBA\xE8\x80\x85\xE5\x9B\x9B\xE6\xB5\xB7\xEF\xBC\x88\xE5\x8C\x97\xE4\xBA\xAC\xEF\xBC\x89\xE6\x8A\x80\xE6\x9C\xAF\xE6\x9C\x89\xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8, OU=IT, CN=*.zhihu.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:a0:a8:71:88:cf:5e:1b:e6:c8:45:ed:60:89:ce: d2:76:a0:af:03:a6:c1:18:bb:8c:8c:c7:cb:b6:93: ce:46:4f:46:74:66:49:1a:80:2c:ae:4f:1b:db:c1: 5c:8d:ad:b6:23:06:dc:97:c0:d0:c4:7d:a9:f8:4e: 79:e4:b4:d1:ed:41:c3:52:87:6c:ac:f3:05:86:5f: 57:52:a0:d2:93:34:7c:6f:d5:4e:21:c4:7c:5b:be: 6f:b0:3e:ef:6c:4c:8f:90:f7:ae:50:c9:a0:b7:dd: 42:eb:c2:c0:58:0e:da:65:01:be:c1:43:6e:2f:f2: 59:fd:b6:c4:59:1f:cd:ee:af:55:44:06:c4:8b:6e: b8:f7:1a:e1:ad:89:4a:0a:a2:9c:a3:a8:bc:65:41: f3:7d:e0:29:03:fb:84:a3:da:7b:fb:c9:ec:87:aa: 87:5c:58:02:0e:02:d8:c1:cf:b1:1c:25:f7:df:ac: 0a:a6:7b:c5:5d:d0:51:e2:97:c6:ff:01:17:21:a6: c0:fd:88:b1:a6:2d:aa:d0:4f:61:3c:35:13:dc:ff: 51:ce:2d:48:18:c3:cd:05:43:60:e2:9a:4c:01:55: 98:31:9d:f3:c4:4b:3b:49:17:d4:bd:0b:34:e1:24: 05:a7:48:87:49:69:77:76:d0:d3:f2:70:f2:e7:c0: 90:b1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Authority Key Identifier: keyid:90:58:FF:B0:9C:75:A8:51:54:77:B1:ED:F2:A3:43:16:38:9E:6C:C5 X509v3 Subject Key Identifier: 31:63:1F:A1:0B:43:D7:A5:8C:3D:F6:2E:85:69:D4:E1:E3:56:91:46 X509v3 Subject Alternative Name: DNS:*.zhihu.com, DNS:zhihu.com X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 CRL Distribution Points: Full Name: URI:http://cdp.geotrust.com/GeoTrustRSACA2018.crl X509v3 Certificate Policies: Policy: 2.16.840.1.114412.1.1 CPS: https://www.digicert.com/CPS Policy: 2.23.140.1.2.2 Authority Information Access: OCSP - URI:http://status.geotrust.com CA Issuers - URI:http://cacerts.geotrust.com/GeoTrustRSACA2018.crt X509v3 Basic Constraints: CA:FALSE Signature Algorithm: sha256WithRSAEncryption 54:73:e6:02:db:5d:49:30:4d:61:71:ac:ef:6d:f1:52:af:45: f2:0f:81:94:0b:5c:0e:bd:b6:c2:98:af:08:6c:11:45:25:e9: 8d:7d:80:d8:3e:78:50:5d:f8:4d:bf:ef:6d:fd:8a:74:d9:6c: 90:65:55:b6:d1:59:3a:07:25:42:6a:74:b0:dd:31:e2:a0:50: 04:4a:03:fe:61:24:e7:74:33:c9:69:94:70:79:d9:89:20:c3: 80:b2:e7:73:72:b6:73:00:10:8f:8e:25:0e:1f:41:b6:bc:86: da:d2:b4:ae:c7:b9:1d:80:fa:58:e7:ba:79:2c:ef:63:5a:96: af:03:22:98:78:58:57:9f:70:45:a3:0a:22:87:c3:ef:45:7d: 2a:ed:d8:1b:38:2e:9e:d7:27:7e:53:d1:44:62:3d:cb:d0:e6: 01:e6:3a:5c:86:8c:d5:b8:91:4c:d8:55:07:e6:23:03:71:23: ce:19:f6:4e:a4:ba:69:55:eb:d9:11:49:32:09:ee:b8:58:43: 69:ff:51:6b:c6:17:7f:74:83:50:19:a0:99:79:64:6a:e0:ff: 5b:f5:51:53:fb:22:3a:10:a4:4f:ed:25:b2:ca:cb:8a:1b:1e: bc:db:5d:46:95:31:fe:03:c8:cc:42:dc:b6:e4:29:d9:85:f9: 6a:4e:39:d8 -----BEGIN CERTIFICATE----- MIIFCTCCA/GgAwIBAgIQDjzBSZSz4XSmNFTZkGRm1zANBgkqhkiG9w0BAQsFADBe MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMR0wGwYDVQQDExRHZW9UcnVzdCBSU0EgQ0EgMjAxODAe Fw0xNzEyMjUwMDAwMDBaFw0yMDEyMjQxMjAwMDBaMHkxCzAJBgNVBAYTAkNOMRIw EAYDVQQHDAnljJfkuqzluIIxMzAxBgNVBAoMKuaZuuiAheWbm+a1t++8iOWMl+S6 rO+8ieaKgOacr+aciemZkOWFrOWPuDELMAkGA1UECxMCSVQxFDASBgNVBAMMCyou emhpaHUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoKhxiM9e G+bIRe1gic7SdqCvA6bBGLuMjMfLtpPORk9GdGZJGoAsrk8b28Fcja22Iwbcl8DQ xH2p+E555LTR7UHDUodsrPMFhl9XUqDSkzR8b9VOIcR8W75vsD7vbEyPkPeuUMmg t91C68LAWA7aZQG+wUNuL/JZ/bbEWR/N7q9VRAbEi2649xrhrYlKCqKco6i8ZUHz feApA/uEo9p7+8nsh6qHXFgCDgLYwc+xHCX336wKpnvFXdBR4pfG/wEXIabA/Yix pi2q0E9hPDUT3P9Rzi1IGMPNBUNg4ppMAVWYMZ3zxEs7SRfUvQs04SQFp0iHSWl3 dtDT8nDy58CQsQIDAQABo4IBpjCCAaIwHwYDVR0jBBgwFoAUkFj/sJx1qFFUd7Ht 8qNDFjiebMUwHQYDVR0OBBYEFDFjH6ELQ9eljD32LoVp1OHjVpFGMCEGA1UdEQQa MBiCCyouemhpaHUuY29tggl6aGlodS5jb20wDgYDVR0PAQH/BAQDAgWgMB0GA1Ud JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNVHR8ENzA1MDOgMaAvhi1odHRw Oi8vY2RwLmdlb3RydXN0LmNvbS9HZW9UcnVzdFJTQUNBMjAxOC5jcmwwTAYDVR0g BEUwQzA3BglghkgBhv1sAQEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGln aWNlcnQuY29tL0NQUzAIBgZngQwBAgIwdQYIKwYBBQUHAQEEaTBnMCYGCCsGAQUF BzABhhpodHRwOi8vc3RhdHVzLmdlb3RydXN0LmNvbTA9BggrBgEFBQcwAoYxaHR0 cDovL2NhY2VydHMuZ2VvdHJ1c3QuY29tL0dlb1RydXN0UlNBQ0EyMDE4LmNydDAJ BgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBUc+YC211JME1hcazvbfFSr0Xy D4GUC1wOvbbCmK8IbBFFJemNfYDYPnhQXfhNv+9t/Yp02WyQZVW20Vk6ByVCanSw 3THioFAESgP+YSTndDPJaZRwedmJIMOAsudzcrZzABCPjiUOH0G2vIba0rSux7kd gPpY57p5LO9jWpavAyKYeFhXn3BFowoih8PvRX0q7dgbOC6e1yd+U9FEYj3L0OYB 5jpchozVuJFM2FUH5iMDcSPOGfZOpLppVevZEUkyCe64WENp/1Frxhd/dINQGaCZ eWRq4P9b9VFT+yI6EKRP7SWyysuKGx68211GlTH+A8jMQty25CnZhflqTjnY -----END CERTIFICATE-----
3. 通过openssl获取证书的含义
- 一个 证书(Certificate) 由 数据(Data) 和 签名(Signature) 两部分组成。
- 数据(Data)包含内容如下:
- 证书版本号(Version):X.509v3
- 序列号(Serial Number):一个 CA 机构内是唯一的,但不是全局唯一
- 签名算法(Signature Algorithm):签名的计算公式为RSA(sha256(Data), IssuerPrivateKey)
- 签发者(Issuer):DN(Distinguished Name)
- 有效期(Validity):证书的有效期间 [Not Before, Not After]
- 证书拥有者(Subject):也是一个 DN公钥长度一般是 2048bit,1024bit已经被证明不安全
- 扩展字段(X509v3 extensions):证书所携带的域名信息会配置在 SAN 中(X509v3 Subject Alternative Name)
- 签名(Signature):位于证书最末尾,签名算法 sha256WithRSAEncryption 在 Data 域内已经指明 ,而 RSA 进行非对称加密所需的私钥(Private Key)是由 Issuer 提供。
- Issuer 是一个可以签发证书的证书,由证书权威 CA 提供,CA 需要保证证书的有效性,而且 CA 的私钥需要绝密保存,一旦泄露出去,证书可能会被随意签发。
- 生成签名的公式:
Signature = RSA(sha256(Data), IssuerPrivateKey)
三. 证书链(Certificate Chain)
1. 背景
- UA(如客户端/浏览器)拿到TLS证书之后,需要Issuer的公钥(Public Key)才能解码出Data的信息摘要。但是证书只携带了Issuer的DN,并没有公钥,那客户端是如何获取到公钥的?
2. 概述
- X.509 除了规范证书的内容之外,还规范了如何获取 CRL 以及 证书链(Certificate Chain) 的验证算法。
3. 背景问题的解释
- 在访问网址(
https://www.youzan.com
)时,浏览器并非只拿到一个证书,而是一个证书链:
DigiCert Global Root CA |__ GeoTrust RSA CA 2018 |__ *.zhihu.com
-
证书
「*.zhihu.com」
的 签发者(Issuer)就是它的父节点「GeoTrust RSA CA 2018」
。因为 UA(浏览器或操作系统)中会预先内置一些权威 CA
签发的根证书(Root Certificate)或中间证书(Intermediate Certificate),例如上面的「GeoTrust RSA CA 2018」
和「DigiCert Global Root CA」
。
-
当获得证书链之后,我们就可以很轻松的往上回溯到被 UA 信任的证书,虽然 UA 内置的可能是中间证书(Intermediate Certificate)。
-
但是如果一个 End-Entity 证书即使回溯到跟证书(Root Certificate)也没有在 UA 的受信列表中找到,那么这个站点就会被标记为不安全。例如 12306 的主页被标记为 “Not Secure",因为它的根证书不被信任。
参考资料
- TLS 握手的作用之一是身份认证),被验证的一方需要提供一个身份证明。在 HTTPS 的世界里,这个身份证明就是 「TLS 证书」,或者称为 「HTTPS 证书」。
-
使用openssl创建并签署SSL/TLS证书
2021-01-28 17:31:36希望在生成 SSL/TLS 证书之前,您已经安装有 openssl 以及对 SSL/TLS 有了初步的了解。 概述 本文主要讲述CA的私钥和x509自签名证书的生成,服务器/客户端的私钥和CSR的生成,以及CA对服务器/客户端的CSR签名操作。...希望在生成 SSL/TLS 证书之前,您已经安装有 openssl 以及对 SSL/TLS 有了初步的了解。
概述
本文主要讲述CA的私钥和x509自签名证书的生成,服务器/客户端的私钥和CSR的生成,以及CA对服务器/客户端的CSR签名操作。初始文件包括server-ext.cnf、client-ext.cnf以及gen.sh,相关内容如下:
server-ext.cnf
subjectAltName=DNS:*.study.com,DNS:*.study.org,IP:0.0.0.0
client-ext.cnf
subjectAltName=DNS:*.client.com,DNS:*.client.org,IP:0.0.0.0
gen.sh
rm *.pem # 1.生成CA的私钥和自签名证书 openssl req -x509 -newkey rsa:4096 -days 365 -nodes -keyout ca-key.pem -out ca-cert.pem -subj "/C=CH/ST=SiChuan/L=ChengDu/O=Study/OU=Go/CN=Tony/emailAddress=Tony@email.com" echo "CA's self-signed certificate" openssl x509 -in ca-cert.pem -noout -text # 2.生成服务器的私钥和证书签名请求(CSR) openssl req -newkey rsa:4096 -nodes -keyout server-key.pem -out server-req.pem -subj "/C=CH/ST=GuangDong/L=GuangZhou/O=Computer/OU=Go/CN=Harry/emailAddress=Harry@email.com" # 3.使用CA的私钥签署服务器的CSR并生成签名证书 openssl x509 -req -in server-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile server-ext.cnf echo "Server's certificate signed by CA" openssl x509 -in server-cert.pem -noout -text echo "Verify ca-cert.pem server-cert.pem" openssl verify -CAfile ca-cert.pem server-cert.pem # 4.生成客户端的私钥和证书签名请求(CSR) openssl req -newkey rsa:4096 -nodes -keyout client-key.pem -out client-req.pem -subj "/C=CH/ST=FuJian/L=XiaMen/O=Client/OU=Gopher/CN=Alice/emailAddress=Alice@email.com" # 5.用CA的私钥签署客户端的CSR并生成签名证书 openssl x509 -req -in client-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile client-ext.cnf echo "client's certificate signed by CA" openssl x509 -in client-cert.pem -noout -text echo "Verify ca-cert.pem client-cert.pem" openssl verify -CAfile ca-cert.pem client-cert.pem
运行结果
- ca-key.pem:CA的私钥
- ca-cert.pem:CA的证书文件。
- ca-cert.srl:保存证书的唯一序列号。
- client-ext.cnf:客户端证书扩展信息。
- client-req.pem:客户端的证书签名请求(CSR)文件。
- client-key.pem:客户端的私钥。
- client-cert.pem:客户端的证书。
- server-ext.cnf:服务器证书扩展信息。
- server-req.pem:服务器的证书签名请求(CSR)文件。
- server-key.pem:服务器的私钥。
- server-cert.pem:服务器的证书。
后面将逐个讲解gen.sh中的相关命令。
一. 生成CA的私钥和自签名证书
openssl req -x509 -newkey rsa:4096 -days 365 -nodes -keyout ca-key.pem -out ca-cert.pem -subj "/C=CH/ST=SiChuan/L=ChengDu/O=Study/OU=Go/CN=Tony/emailAddress=Tony@email.com"
- req -x509:输出X509格式的自签名证书。
- -newkey rsa:4096:输出4096位的RSA格式的私钥。
- -days 365:证书有效期为365天。
- -nodes:不进行对私钥的加密。
- -keyout ca-key.pem:将私钥写入ca-key.pem文件中。
- -out ca-cert.pem:将签名证书写入ca-cert.pem文件中。
- -subj:身份信息。
-nodes 与 -subj
为了便于理解,这里将 -nodes、-subj 选项去除后得到命令:
openssl req -x509 -newkey rsa:4096 -days 365 -keyout ca-key.pem -out ca-cert.pem
运行结果:
(如上图所示)在我们运行命令之后,因为没有 -nodes 选项,所以我们需要在A处填写私钥的密码,防止黑客盗取私钥后,若无密码则无法直接使用私钥,而需再次对私钥解密;因为没有 -subj 选项,所以我们需要在B处填写相关的身份信息,包括国家、公司等信息。使用命令
openssl x509 -in ca-cert.pem -noout -text
查看证书信息:
因为这是自签名证书,所以 Issuer 和 Subject 的信息是相同的,Issuer为证书颁发者信息,Subject为证书拥有者信息。在后面 server 的证书中我们将会看到,这两个信息不是相同的。若在测试环境下不想对私钥进行加密,则加上 -nodes 选项。
若不想每次都输入身份信息,则可以在首次生成证书后,将 Subject 后的信息copy下来,然后使用 -subj 选项直接带上身份信息,这里需要注意:每条信息之间需要用 “/” 间隔,以及删除 “=” 前后的空格。
在添加上 -nodes 与 -subj 选项后就得到了示例中完整的命令。
二. 生成服务器的私钥和CSR
openssl req -newkey rsa:4096 -nodes -keyout server-key.pem -out server-req.pem -subj "/C=CH/ST=GuangDong/L=GuangZhou/O=Computer/OU=Go/CN=Harry/emailAddress=Harry@email.com"
因为这里服务器只生成CSR,所以去除 -x509 与 -days 选项,最后还需要更改下相关身份信息,运行如下:
server-key.pem:服务器的私钥。
server-req.pem:服务器证书签名请求(CSR)。三. 使用CA 的私钥签署服务器的CSR
openssl x509 -req -in server-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile server-ext.cnf
- x509:x509格式的签名。
- -req -in server-req.pem:传入CSR文件server-req.pem。
- -CA ca-cert.pem:传入CA的证书文件ca-cert.pem。
- -CAkey ca-key.pem:传入CA的私钥文件ca-key.pem。
- -CAcreateserial:确保CA签署的每个证书都带有唯一的序列号,换句话说,只要是该CA签署的证书都具有唯一序号,该序号保存在 srl 文件中,若 srl 文件不存在,首次将自动生成。
- -out server-cert.pem:将CA签名后的证书内容写入server-cert.pem文件中。
- -extfile server-ext.cnf:服务器的扩展文件,其中包括DNS、IP以及Email的信息。若是需要在本地测试,则需要在 server-ext.cnf 中添加 IP:0.0.0.0,同时在客户端扩展文件(例如:client-ext.cnf)中也需要添加 IP:0.0.0.0。
运行结果:
运行后将会生成ca-cert.srl和server-cert.pem,ca-cert.crl 中保存的是该CA的唯一序列号,凡是CA所签署的证书,其 Serial Number 值将等同于 ca-cert.crl 中保留的值,如A和B的值。C 处是CA的身份信息,D 处为服务器的身份信息,E 处为证书有效期。注意:如果我们使用的是CA加密后的私钥,则在执行上述命令时,需要输入CA私钥的密码才能对CSR进行签名。
我们可以使用 -extfile 选项,添加拓展信息,我们可以从证书文件中看到相关的拓展信息,如下:
注意:为了本地开发方便,需要在服务器的扩展文件 server-ext.cnf 中添加 IP:0.0.0.0 ,并且需要在客户端的扩展文件(例如:client-ext.cnf)中添加IP:0.0.0.0。四. 生成客户端的私钥和CSR
openssl req -newkey rsa:4096 -nodes -keyout client-key.pem -out client-req.pem -subj "/C=CH/ST=FuJian/L=XiaMen/O=Client/OU=Gopher/CN=Alice/emailAddress=Alice@email.com"
同二。
五. 使用CA 的私钥签署客户端的CSR
openssl x509 -req -in client-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile client-ext.cnf
同三。
-
生成证书:在不到一分钟的时间内生成自签名SSLTLS证书。 使用ECDSA证书(比RSA更安全)。 支持Windows,...
2021-02-17 07:48:19生成自签名SSL / TLS证书 这是什么? 这是一个Windows / Linux / Mac应用程序,可生成包括根CA证书在内的自签名SSL / TLS证书。 文件创建 选项#1-1证书: 选项#2-2个证书: 为什么要使用生成证书? 使用该程序... -
k8s创建证书tls证书
2021-09-30 14:41:31#创建证书 #openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout fortune-teller.key -out fortune-teller.pem -subj "/CN=*.serving.dubhe.ai/O=*.serving.dubhe.ai" #创建Secret #kubectl create ...#创建证书
#openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout fortune-teller.key -out fortune-teller.pem -subj "/CN=*.serving.dubhe.ai/O=*.serving.dubhe.ai"
#创建Secret
#kubectl create secret tls fortune-teller.stack.build --cert fortune-teller.pem --key fortune-teller.key -n default
通过查看 kubectl edit secret fortune-teller.stack.build 得到证书 -
tls-gen:生成对开发有用的自签名x509TLSSSL证书
2021-04-29 05:26:54TLS / SSL证书生成器 tls-gen是基于OpenSSL的工具,可生成用于开发和QA环境的自签名证书。 该项目最初是从许多测试套件中提取的。 它能做什么 tls-gen生成一个自签名的证书颁发机构(CA)证书以及两对或更多对密钥... -
Linux生成TLS证书
2021-05-14 20:12:01安装acme.sh证书的生成有许多方法,这里使用的是比较简单的方法:使用acme.sh脚本生成。注意:针对debian9系统,在执行安装acme.sh脚本之前,需要提前安装必备软件包。不然会有提示"It is recommended to install ... -
autocert:Python Web应用程序的自动TLS证书发行和续签
2021-03-17 08:34:02Python Web应用程序的自动TLS证书发行和续签 概述 Autocert是一个软件包,用于使用协议从自动获取和更新TLS证书。 它基于API和包设计的相同名称: 。 要发挥其魔力,autocert仅需要一个TCP套接字即可监听所需的HTTPS... -
tls证书验证_相互TLS身份验证(mTLS)神秘化
2020-08-01 09:23:56tls证书验证A walk-through of a simplified implementation of mTLS. mTLS简化实现的演练。 First, what is TLS? 首先,什么是TLS? Transport Layer Security (TLS), and its now-deprecated predecessor, ... -
action-tls-monitor:Github操作来监视TLS证书
2021-04-11 14:01:57监视您的域的SSL / TLS证书。 用法 您可以针对单个域运行,也可以使用矩阵策略针对多个域运行。 单域 name : SSL/TLS Monitor on : schedule : - cron : " 0 16 * * * " jobs : monitor : name : SSL/TLS ... -
证书到期监视器控制器监视Ingress中使用的TLS证书的到期。-Golang开发
2021-05-26 17:19:39证书到期监视器控制器证书到期监视器控制器监视Ingress中使用的TLS证书的到期。 安装您可以使用以下示例将其应用于群集。 ap证书到期监视器控制器证书到期监视器控制器监视Ingress中使用的TLS证书的到期。 安装您... -
cert-checker:证书监视实用程序,用于监视tls证书并将结果报告为指标
2021-05-03 14:11:04cert-checker是用于监视tls证书的证书监视实用程序。 这些检查作为Prometheus指标公开,可以在仪表板或软警报群集操作员上查看。 该工具的灵感来自。 目录 舵 Kustomize 指标格拉法纳仪表板 选项 发展 用markdown... -
window证书 创建和部署RDP TLS证书
2021-12-21 17:02:04 -
kubelet-serving-cert-approver:Kubelet服务TLS证书签名请求批准者
2021-04-01 05:08:21Kubelet服务证书批准者是一个自定义批准控制器,用于批准kubernetes.io/kubelet-serving证书签名请求,kubelet用于服务TLS端点。 为什么要使用Kubelet服务证书批准者? 您想要安全地-根据受信任的证书颁发机构(CA... -
dokku-letsencrypt:自动为dokku加密TLS证书安装
2021-04-28 16:30:10dokku-letsencrypt是官方的插件 ,让从自动检索并安装TLS证书的能力 。 在ACME验证期间,您的应用将随时可用。 注意:运行此插件,即表示您同意自动签署《加密用户协议》(因为会提示您是否同意,可能会中断cron... -
certificate-exporter:Prometheus导出器在TLS证书到期时显示指标
2021-04-17 22:24:02这是一个简单的Prometheus导出程序,可在TLS证书到期时提供指标。 它基于netcat来处理Web请求,并基于openssl来下载和读取证书。 例子 导出器将在端口80上启动Web服务器(不使用HTTPS / TLS),并在每个URI下提供其... -
SSL/TLS证书1年有效期新规已至,被“证书过期”支配的恐惧又增加了!
2020-09-08 13:38:072020年9月1日起,两年期公共SSL/TLS证书正式告别了行业,在三大浏览器(Apple Safari、 GoogleChrome、Mozilla Firefox)的推动下,SSL/TLS证书最长有效期变更为13个月,同时,全球各大证书权威签发机构已停止签发... -
通过委派的golang.orgxcryptoacmeautocert服务器获取仅供内部使用的TLS服务器的LetsEncrypt TLS证书
2021-03-21 17:02:42内部HTTPS服务器具有有效的TLS证书,而不必大惊小怪。 特别是: 我不想成为自己的CA或将所有设备配置为信任新的根。 我不想使用LetsEncrypt DNS挑战,因为这里有大量的DNS提供程序,并且我不希望API客户端提供大量的... -
RCL.AutoRenew:使用此Microsoft Azure功能应用程序自动续订在RCL门户中创建的SSLTLS证书
2021-03-14 08:41:22使用此Microsoft Azure功能应用程序可以自动续订使用RCL门户创建的SSL / TLS证书。 自动续订SSL / TLS证书 您可以使用功能应用程序使用以下创建选项自动续订在RCL门户中创建的SSL / TLS证书: Azure应用服务 Azure... -
kubernetes kubectl 签名TLS证书
2020-06-04 17:03:00kubernetes 集群可以为证书签名,用于集群内部的TLS通信,ca就是集群的ca,每个pod里面serviceaccount的secret都带着。 1. 创建证书签名请求-csr $ cat <<EOF | ./cfssl genkey - | ./cfssljson -bare server ... -
self-signed-ssl:使用OpenSSL生成自签名TLS证书
2021-05-01 09:37:14该脚本简化了使用OpenSSL的证书颁发机构,签名请求和自签名TLS证书的创建。 安装 自制软件(MacOS) brew tap lstellway/formulae brew install lstellway/formulae/self-signed-ssl 卷曲 curl --output self-... -
Linux服务器TLS证书故障解决方法
2021-05-15 08:57:58许多Linux服务器都使用TLS证书,但是它们的工作方式不尽相同。证书问题不总是容易发现,假设你想要登陆一台LDAP服务器,在没有通知任何错误的情况下连接超时。也许你会认为这是用户账户出了问题,但常常与证书相关。... -
SSL证书/TLS证书是什么
2018-01-29 11:59:01A. SSL协议与TLS是什么?它们的功能是什么? 答:SSL(Security Socket Layer)是一种广泛运用在互联网上的资料加密协议;...3. 透过SSL证书内的公共金钥加密资料传输至服务器端,服务器端用私密金钥解密来证明 -
nginx配置多个TLS证书,以及TLS SNI简介
2019-08-11 16:07:37原来申请的正式域名备案通过,TLS证书也申请了。之前使用的临时域名和证书作为测试环境使用。于是要在单个ECS主机上配置nginx多个证书和多个域名。 实践 nginx部署多个TLS证书很简单,在不同的virtual host分别...