举个例子:acmecompany公司的Web服务器的全域名可以是www.acmecompany. com,而若WWW主机是在销售部子域,则它的全域名可以是www.sales. acmecompany.com。当给出的名字像acmecompany而不是acmecompany.时,他们通常是指主机名,而名字中带有句点的则认为是全域名。这种区别在理解和控制解析过程时是非常重要的。句点实际上指出了域名树的根。 所以,单机是没有FQDN的。
不用软件的话,就用windows自带的命令查看吧。我是经过测试的,在xp下测试的。
在命令提示符下输入:netstat -abnov
命令详解:
显示协议统计和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程 序承载多个独立组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。此 情况下,可执行程序的名称位于底部中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在您没有足够权限时可能失败。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任何一个: IP、IPv6、 ICMP、ICMPv6、TCP、TCPv6、UDP或 UDPv6。
-r 显示路由表。
-s 显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、 UDP 和 UDPv6的统计;-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
interval 重新显示选定的统计,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统 计。如果省略,则 netstat将打印当前的配置信息一次。
Apache kafka 允许clinet通过SSL连接,SSL默认是不可用的,需手动开启。
主要步骤是:
os: ubuntu 18
java: 1.8.0_275
kafka: 2.7.0
官方的步骤
把上面的步骤拆开来,并解释
生成密钥和证书,可以使用java的keytool来生产。我们将生成密钥到一个临时的密钥库,之后我们可以导出并用CA签名它。
例子
keystore: 密钥仓库存储证书文件。密钥仓库文件包含证书的私钥(保证私钥的安全)。
validity: 证书的有效时间,天
此步骤要注意的是,名与姓(CN)这一项必须输入域名,如 "localhost",切记不可以随意写,我曾尝试使用其他字符串,在后面客户端生成证书认证的时候一直有问题。
客户端将根据以下两个字段之一验证服务器的完全限定域名(FQDN):
这两个字段均有效,但是RFC-2818建议使用SAN。SAN更加的灵活,允许声明多个DNS条目。另一个优点是,出于授权目的,可以将CN设置为更有意义的值。 要添加SAN,需将以下参数 -ext SAN=DNS:{FQDN} 追加到keytool命令:
完成上面步骤,可使用命令
来验证生成证书的内容
server.keystore.jks 这个文件包含了一对 公私钥 ,和 一个证书 来识别机器。但是,证书是未签名的,这意味着攻击者可以创建一个这样的证书来伪装成任何机器。
生成的CA是一个简单的 公私钥对 和 证书 ,用于签名其他的证书。
例子
将生成的CA添加到 **clients' truststore(客户的信任库)** ,以便client可以信任这个CA:
ca-cert: CA的证书
例子
客户端的信任库存储所有客户端信任的证书,将证书导入到一个信任仓库也意味着信任由该证书签名的所有证书,正如上面的比喻,信任政府(CA)也意味着信任它颁发的所有护照(证书),此特性称为信任链,在大型的kafka集群上部署SSL时特别有用的。可以用单个CA签名集群中的所有证书,并且所有的机器共享相同的信任仓库,这样所有的机器也可以验证其他的机器了。
用步骤2.2 生成的CA签名 步骤2.1生成的证书。首先导出请求文件:
cert-file: 出口,服务器的未签名证书
然后用CA签名:
例子
最后,你需要导入CA的证书和已签名的证书到密钥仓库:
参数
Kafka Broker支持监听多个端口上的连接,通过 server.properteis 配置,最少监听1个端口,用逗号分隔。
下面是broker端需要的SSL配置,
more config/server.properties
Producer和Consumer的SSL的配置是相同的。
如果broker中不需要client(客户端)验证,那么下面是最小的配置示例:
more client-ssl.properties
如果需要客户端认证,则必须像 步骤2.1 一样创建密钥库,并且还必须配置以下内容:
启动 zookeeper 和 kafka
在不同的Terminal 分别运行下面命令
Terminal1
Terminal2
Terminal3
创建topic
生产和消费topic
官网: http://kafka.apache.org/documentation/#security_ssl
https://www.orchome.com/171
https://www.orchome.com/1959
Java 11 导致 SSL handshake fail https://stackoverflow.com/questions/57601284/java-11-and-12-ssl-sockets-fail-on-a-handshake-failure-error-with-tlsv1-3-enable
生成本机证书时,CN 需要填写 localhost 或者真实的域名,否则客户端连接失败。
全域名 是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。
从全域名中包含的信息可以看出主机在域名树中的位置。例如,acmecompany公司的Web服务器的全域名可以是www. acmecompany. com,而若WWW主机是在销售部子域,则它的全域名可以是www.sales . acmecompany.com 。
当给出的名字像acmecompany而不是acmecompany.时,通常是指主机名,而名字中带有句点的则认为是全域名。
这种区别在理解和控制解析过程时是非常重要的。句点实际上指出了域名树的根。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)