- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。它允许一个证书支持多个不同的域名。通过使用SAN字段,可以在一个证书中指定多个DNS名称(域名)、IP地址或其他类型的标识符,这样证书就可以同时用于多个不同的服务或主机上。这种灵活性意味着企业不需要为每个域名单独购买和安装证书,从而降低了成本和复杂性.
先来看一看 Google 是怎样使用 SAN 证书的,下面是 Youtube 网站的证书信息:
这里可以看到这张证书的 Common Name 字段是 *.google.com,那么为什么这张证书却能够被 www.youtube.com 这个域名所使用呢。原因就是这是一张带有 SAN 扩展的证书,下面是这张证书的 SAN 扩展信息:
这里可以看到,这张证书的 Subject Alternative Name 段中列了一大串的域名,因此这张证书能够被多个域名所使用。对于 Google 这种域名数量较多的公司来说,使用这种类型的证书能够极大的简化网站证书的管理.
在早期的互联网中,每个SSL/TLS证书通常只包含一个CN字段,用于标识单一的域名或IP地址。随着虚拟主机技术的发展和企业对于简化管理的需求增加,需要一种机制能够允许单个证书有效地代表多个域名或服务。例如,一个企业可能拥有多个子域名,希望用单一的证书来保护它们.
为了解决这个问题,SAN扩展被引入到X.509证书标准中。最初在1999年的RFC 2459中提出,SAN提供了一种方法来指定额外的主题名称,从而使得一个证书能有效地代表多个实体.
在申请SSL/TLS证书时,可以指定一个或多个SAN值。这些值通常是你希望证书保护的域名或IP地址。证书颁发机构(CA)在颁发证书时会验证这些信息的正确性,并将它们包含在证书的SAN字段中.
在OpenSSL中创建证书时添加SAN,需要在配置文件中添加一个subjectAltName扩展。这通常涉及到以下几个步骤:
创建带有SAN扩展字段的证书签名请求(CSR)的配置文件, alt_names 的配置段为SAN扩展字段配置。确保在将其保存至文件(如csr.conf).
[ req ] default_bits = 2048 prompt = no default_md = sha256 req_extensions = v3_ext distinguished_name = dn [ dn ] C = CN ST = ShangDong L = SZ O = Wise2c OU = Wise2c CN = zmc [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = *.zmcheng.com DNS.2 = *.zmcheng.net DNS.3 = *.zmc.com DNS.4 = *.zmc.net [ v3_ext ] basicConstraints=CA:FALSE keyUsage=keyEncipherment,dataEncipherment extendedKeyUsage=serverAuth,clientAuth subjectAltName=@alt_names
注意 1:SAN扩展字段不仅可以配置域名,还可以配置邮箱、IP地址、URI.
// Subject Alternate Name values. (Note that these values may not be valid // if invalid values were contained within a parsed certificate. For // example, an element of DNSNames may not be a valid DNS domain name.) DNSNames []string EmailAddresses []string IPAddresses []net.IP // Go 1.1 URIs []*url.URL // Go 1.10
生成密钥位数为 2048 的 ca.key 。
openssl genrsa -out ca.key 2048
依据 ca.key 生成 ca.crt (使用 -days 参数来设置证书有效时间):
openssl req -x509 -new -nodes -key ca.key -subj "/CN=zmc" -days 10000 -out ca.crt
生成密钥位数为 2048 的 server.key 。
openssl genrsa -out server.key 2048
基于配置文件生成证书签名请求 。
openssl req -new -key server.key -out server.csr -config csr.conf
。
使用 ca.key、ca.crt 和 server.csr 生成服务器证书 。
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key \-CAcreateserial -out server.crt -days 10000 \-extensions v3_ext -extfile csr.conf
查看证书,可以看到创建出带有SAN扩展字段证书 。
openssl x509 -noout -text -in ./server.crt
客户端(一般是浏览器)在请求HTTPS网站时,验证服务端证书的过程确实是一个复杂且关键的安全步骤。以下是以浏览器为例,说下浏览器验证服务端证书步骤:
以上步骤详细描述了浏览器在请求HTTPS网站时验证服务端证书的过程。这个过程确保了用户与服务器之间的通信是安全、可信的.
KubeApiserver地址:10.20.32.205:6443 。
KubeApiserver证书信息:
[root@member-cluster2-master1 pki]# pwd /etc/kubernetes/pki [root@member-cluster2-master1 pki]# ls apiserver.crt apiserver-kubelet-client.crt ca.crt front-proxy-ca.crt front-proxy-client.crt sa.key apiserver.key apiserver-kubelet-client.key ca.key front-proxy-ca.key front-proxy-client.key sa.pub [root@member-cluster2-master1 pki]# openssl x509 -noout -text -in ./apiserver.crt Certificate: Data: Version: 3 (0x2) Serial Number: 495742113187184862 (0x6e13ad34cb940de) Signature Algorithm: sha256WithRSAEncryption Issuer: CN = kubernetes Validity Not Before: Sep 11 01:13:49 2024 GMT Not After : Aug 18 01:16:09 2124 GMT Subject: CN = kube-apiserver ....... X509v3 Subject Alternative Name: DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, DNS:lb.zmc.local, DNS:localhost, DNS:member-cluster2-master1, DNS:member-cluster2-master1.cluster.local, IP Address:10.234.0.1, IP Address:10.20.32.205, IP Address:127.0.0.1 Signature Algorithm: sha256WithRSAEncryption .......
第一次接触Kubernetes并安装集群时,网上翻了很多博客,在生成KubeApiserver证书环节,都写着要把整个待安装集群的ip地址都写到KubeApiserver证书请求文件的SAN扩展字段里面,也没讲什么原因.
至于在生成KubeApiserver证书环节是否要把整个集群的ip地址都写到KubeApiserver证书请求文件的SAN扩展字段里面,还是要看集群里面的组件如何访问KubeApiserver,如果:
对于以上这种情况,SAN扩展字段可以只写VIP(负责均衡器IP等)、MasterIPs即可,WorkerIP没必要写到SAN扩展字段里面.
Subject Alternative Name(主体别名)是一个证书扩展字段,用于指定证书所适用的主机名列表。当客户端连接到服务器时,会检查服务器返回的证书中的主体别名是否包含与请求的主机名匹配的条目.
SAN的引入极大地增强了数字证书的功能和应用范围,使得管理和保护多域名环境变得更加高效和简便。作为现代网络安全的一个关键组成部分,理解并正确使用SAN对于任何需要部署SSL/TLS保护的个人或组织都至关重要。随着网络环境的不断演变和新需求的不断出现,SAN将继续发挥其在保护网络通信安全中的重要作用。无论是IT专业人员还是普通用户,都应该了解SAN的基本概念和实践,以确保在数字世界中安全地通信和交互.
最后此篇关于OpenSSL证书通过SubjectAlternativeName扩展字段扩展证书支持的域名的文章就讲到这里了,如果你想了解更多关于OpenSSL证书通过SubjectAlternativeName扩展字段扩展证书支持的域名的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
以下帖子可能看起来相同,但在尝试作为答案提供的所有解决方案后,我无法纠正问题。(Login failed for user 'DOMAIN\MACHINENAME$') 我的问题 我正在 Window
域名、虚拟主机是什么意思?有的新手用户不理解,为什么做网站要买域名和空间才行。这里我们来分别介绍下域名和虚拟主机。 关于域名 域名通俗的说,就是你网站的名号,你注册域名之后就以这个名号去宣传
我有一台具有2个域名的服务器(比如domain1.com和domain2.com)。 我可以通过ssh user@domain1.com和ssh user@domain2.com SSH进入服务器。我
我已经设置了一个 Ubuntu LAMP 服务器,并且我的网站可以正常运行 phpmyadmin。但是,我最近不得不为我的 IP 地址创建一个虚拟主机,以避免 Tomcat 中的目录列表出现安全问题,
Nginx可以为某一个域名单独加用户认证,具体做法如下: 1. 生成用户认证的用户名和密码: 复制代码代码如下: #wget -c soft.vpser.net/ln
Centos中基于IP的虚拟主机搭建 首先,检查是否已安装httpd软件包 安装httpd软件包 安装完成 启动服务 主配置文件是/etc/httpd/conf/htt
1、什么是泛域名解析? 泛域名解析是指将*.域名解析到同一IP。 在域名前添加任何子域名,均可访问到所指向的WEB地址。也就是客户的域名a.com之下所设的*.a.com全部解析到同一个IP地
我知道 WordNet 有域层次结构:例如运动->足球。 1) 是否可以列出所有与“sport->football”子域相关的单词? Response: goalkeeper, forward,
我正在尝试为我正在处理的项目的 URL 缩短器设置一个带有 .ka 后缀的域。例如类似于 drbl.in。我在网上查了一下,这个后缀似乎还没有在任何国家注册过,也没有出现过任何域名服务。关于如何解决这
我在设置 Openfire 时遇到问题。 Openfire 设置中的默认 XMPP 域名显示我的计算机名称,因此每当我通过 Spark 进行测试时,它都不起作用。 我尝试了我拥有的域,但在 openf
我正在使用 Joomla 的 JSN Uniform 插件来接收电子邮件,但它不接受 .company 域作为有效域。它接受常用域(com、net、org、info、biz 等),但不接受 .comp
我创建了一个域名并将其重新定义为您的外部 IP 地址。同时启动 nginx 和 tomcat。将域重新定义为外部 IP 地址。 truckpart4you.com:8081/spring 我想隐藏80
与子域相反。 我试过了。 var a = window.location.hostname.match(/(www.)?([^\.]*)\./)[2]; 但这会抢 frozen-dusk-2587
我正在使用 django 的 send_mail 发送一封电子邮件(使用模板),其中包含以下行: 要重置密码,请点击以下链接: http://localhost:8000/{% url 'reset_
来自 Scrapy 教程: domain_name: identifies the Spider. It must be unique, that is, you can’t set the same
一个快速简单的正则表达式问题 我在字符串中有一个域名,我需要删除它 - 总是有 http://www. 并且域总是以“/”结尾 g_adv_fullpath_old = g_adv_fullpath_
我需要 xslt 版本 2 在记录或元素级别为“xml”属性前缀 (xml:lang="en-us") 生成域名: xmlns:xml="http://www.w3.org/XML/1998/name
如何获取机器的域名(如果机器实际上已加入域)? 当然,如果机器没有加入域,函数应该返回 null,或 空字符串,或 机器的名称,或 "." 注意事项: NetGetJoinInformation Wi
这个手机号码正则验证函数可以说是最新的都支持的,里面有详细的介绍说明,不论以后增加什么号段大家都非常容易的稍微修改一下即可。 javascript 手机号码正则表达式验证函数 复制代码 代码如下:
我使用 Google 域在 Github Pages 上托管我的网站,在 Chrome 中的 iPhone 上运行完美 但是在我的桌面上,Chrome(我的普通浏览器(我确实检查了缓存))或 Fire
我是一名优秀的程序员,十分优秀!