玩转 SSL 证书

2023-05-16

Introduction

Openssl 是一个很牛逼的工具,基本能搞定 PKI & HTTPS 证书相关的事情。这篇博文归类了一堆常用的命令,全部都是关于 key & csr & crt。

本文分成两部分,第一部分对 SSL/TLS 证书最核心的几个名词概念,第二部分则是一系列 openssl 常用命令。

转载请注明出处: http://kyang.cc/


Key, CSR, CRT, CA 都是什么?

什么是 KEY、CRT ?

KEY 是指密钥,通过一定长度的随机数,经过指定的加密算法处理,得到后的一个文本密钥文件。文件中既包含了 公钥 Publib Key & Private key 两个部分。

密钥文件包含 PRIVATE KEY 字符,格式如下 (例子中采用 RSA 算法加密):

-----BEGIN RSA PRIVATE KEY-----
...............
-----END RSA PRIVATE KEY-----

CRT 是指证书,其与 KEY 是一对的。KEY 密钥文件需要严格保密,而 CRT 证书文件却是公开的。以 PC 浏览器上网为例,浏览器通过向服务器 (如 https://github.com) 索取其 server.crt 证书,然后与浏览器内置的受信的 ca.crt 证书进行验证。如果校验成功,则浏览器会提示网站通过 https 连接是安全的。

证书文件包含 CERTIFICATE 字符,格式如下:

-----BEGIN CERTIFICATE-----
...............
-----END CERTIFICATE-----

什么是 CSR ?

如果你想要一个 CA (Certificate Authority) 认证机构为你颁发CRT 证书的话,那你需要先提供一个 CSR 请求文件。这个 CSR 请求文件中,会包含 Public Key 公钥,以及一些申请者信息 (DN Distingusied Name)。

DN 信息中最最重要的部分,就是 Common Name (CN),这个成员需要与后续安放 CRT 证书的服务器,其主机域名 Fully Qualified Domain Name (FQDN) 完全一致才行。
请求文件包含 CERTIFICATE REQUEST 字符,格式如下

-----BEGIN CERTIFICATE REQUEST-----
...............
-----END CERTIFICATE REQUEST-----

什么是 CA ?

CA 全称为 Certificate Authotiry,证书授权中心,又被成为根证书。它类似于工商管理局,给公司企业颁发营业执照的。它主要有两大主要特性:

  • CA 本身是受国际认可,受信任的
  • CA 需要给它受信任的对象颁发证书

证书长啥样?其实你的电脑中有一堆 CA 证书。你可以看一看:

  • Chrome 浏览器:设置 -> 高级 -> 管理证书 -> 授权中心
  • Ubuntu: /etc/ssl/certs

CA 的证书 ca.crt 与 SSL Server 的证书 Server.crt 是什么关系呢?

  1. SSL Server 自己生成一个 密钥 KEY,内置包含 Private Key/Public Key, 私钥加密,公钥解密;
  2. Server 利用 密钥 生成一个请求文件 server.csr,请求文件中包含有 Server 的一些信息,如域名/申请者/公钥等;
  3. Server 将请求文件 server.csr 递交给 CA,然后 CA 对其验明正身后,将用 ca.key 和 server.csr 加密生成 server.crt 证书;
  4. 由于 ca.key 和 ca.crt 是一对,于是以后客户端通过使用 ca.crt 就可以解密认证 server.crt 证书了。

在实际应用中:如果 SSL Client 想要校验 SSL server。那么 SSL server 必须要将他的证书 server.crt 传给 client。然后 client 用 ca.crt 去校验 server.crt 的合法性。如果是一个钓鱼网站,那么 CA 是不会给他颁发合法 server.crt 证书的,这样 client 用 ca.crt 去校验,就会失败。比如浏览器作为一个 client,你想访问合法的淘宝网站(https://www.taobao.com,结果不慎访问到 https://wwww.jiataobao.com ,那么浏览器将会检验到这个假淘宝钓鱼网站的非法性,提醒用户不要继续访问!这样就可以保证了client的所有https访问都是安全的。

什么是 SSL/TLS 单向认证,双向认证 ?

单向认证,指的是只有一个对象校验对端的证书合法性。通常都是 client 来校验服务器的合法性。那么 client 需要一个 ca.crt,服务器需要 server.crt,server.key;

双向认证,指的是相互校验,服务器需要校验每个 client,client 也需要校验服务器。server 需要 server.key、server.crt、ca.crt;client 需要 client.key、client.crt、ca.crt;


Openssl 常用命令

生成 CSRs 请求文件

生成 CSR 请求文件的时候,需要填写 DN Distingusied Name 信息。openssl 默认是通过 shell 交互让用户输入,如下:

Country Name (2 letter code) [AU]: US

State or Province Name (full name) [Some-State]: New York

Locality Name (eg, city) []: Brooklyn

Organization Name (eg, company) [Internet Widgits Pty Ltd]: Example Brooklyn Company

Organizational Unit Name (eg, section) []:Technology Division

Common Name (e.g. server FQDN or YOUR name) []: examplebrooklyn.com

Email Address []:

如果你不想通过交互的方式,来填写这些额外的信息。那则可以使用 -subj 选项,如下:

-subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=examplebrooklyn.com"

接下来的部分将会教大家如何生成与查看 CSR 文件。

产生一个新的 Private Key 和 CSR

如果你想使用 HTTPS (HTTP over TLS) 来加密你自己的 Apache HTTP or Nginx web server,并且你想通过 CA 来帮你解决 SSL 认证的问题。那采用以下命令,创建一个的密钥 (domain.key) 和一个对应的 CSR 请求文件 (domain.csr):

openssl req \
        -newkey rsa:2048 -nodes -keyout domain.key \
        -out domain.csr

其中 -newkey rsa:2048 参数指定了密钥应该通过 RSA 算法产生,长度为 2048 bit。而 -nodes 选项指出产生的密钥不需要额外通过 password 进一步加密。-new 选项在这里是默认选项,既表明需要产生一个 CSR 请问文件。


通过已有的 Private Key 来产生 CSR

当你已经有了一个 Private Key,而且你想通过这个 Key 来向 CA 请求证书的话。那采用以下命令,通过已有的密钥 (domain.key) 来产生 CSR 文件 (domain.csr):

openssl req \
        -key domain.key \
        -new -out domain.csr

填写完 Distingusied Name 信息后,将会得到 CSR 请求文件。其中 -key 选项是为了指明需要使用的 Existing Private Key (domain.key) ,而 -new 选项是为了表明需要产生一个 CSR 请求文件。

如果产生 CSR 请求文件,所需的 Distingusied Name 的信息 以及 Private Key 密钥都不变的情况下,那最后得到的 CSR 文件内容也不会变化。不论产生多少次,或者在不同操作系统上,最后得到的 CSR 内容也完全一致。


通过已有的 CRT 和 Private Key 来产生 CSR

当你想要找 CA 更新已有的 CRT 证书的时候,当时又找不到当初的 CSR 请求文件,那你就可以采用以下命令,从 CRT 证书中提取出所需要的 Distingusied Name 信息,与 Private Key 合成出 CSR 文件。

以下命令通过已有的 Private Key (domain.key) 和 CRT 证书 (domain.crt),来生成所需的 CSR 请求文件 (domain.csr)

openssl x509 \
        -in domain.crt \
        -signkey domain.key \
        -x509toreq -out domain.csr

其中 -x509toreq 选项既表明,想通过一个 X509 的 CRT 证书来生成一个 CSR 请求文件。


生成 CRTs 证书文件

如果你想要使用 SSL 来保证安全的连接,但是又不想去找 public CA 机构购买证书的话,那你就可以自己来生成 Self-signed Root CA 证书。

Self-signed 的证书也可以用来加密连接,只不过你的用户在访问你的网站的时候,将会提示出警告,说你的网站是不被信任的。因此当你开发的服务,并不需要提供给其他用户使用的时候 (e.g. non-production or non-public servers),你才可以使用 Self-signed 形式的证书。

生成 Self-Signed 的证书

以下命令将会生成一个 2048-bits 的 Private Key (self-ca.key) 和 Self-Signed 的 CRT 证书 (self-ca.crt):

openssl req \
        -newkey rsa:2048 -nodes -keyout self-ca.key \
        -x509 -days 365 -out self-ca.crt

其中-x509 选项是为了告诉 req,生成一个 self-signed 的 X509 证书。而 -days 365 表明生成的证书有效时间为 365 天。这条命令执行过程中,会产生一个临时的 CSR 文件,但执行结束后就被删除了。


通过已有的密钥 Private Key 来产生 Self-Signed 证书

以下命令是通过已有的 Private Key (self-ca.key),来生成一个 Self-Signed 的 CRT 证书 (self-ca.crt):

openssl req \
        -key self-ca.key
        -new \
        -x509 -days 365 -out self-ca.key


通过已有的密钥 Private Key & 请求文件 CSR 来产生 Self-Signed 证书

以下命令是通过已有的 Private Key (self-ca.key) 以及请求文件 (self-ca.csr),来生成一个 Self-Signed 的 CRT 证书 (self-ca.crt):

openssl x509 \
       -signkey self-ca.key \
       -in self-ca.csr \
       -req -days 365 -out self-ca.crt


通过已有的请求文件 CSR,通过 Self-Signed CA 来签发 CRT 证书

以下命令是通过已有的 Self-Signed CA 的证书 (self-ca.crt) 和密钥 (self-ca.key),和请求文件 CSR (domain.csr) 来签发生成 CRT 证书 (domain.crt):

openssl x509 \
        -req \
        -CAcreateserial -days 365 \
        -CA self-ca.crt -CAkey self-ca.key \
        -in nginx.csr -out nginx.crt


校验证书

Openssl 默认生成的证书相关的文件都是 PEM 格式编码的,这部分通过 openssl 命令来解析这些文件。

查看请求文件 CSR

openssl req -text -noout -verify -in domain.csr

查看证书文件 CRT

openssl x509 -text -noout -in domain.crt

校验证书文件 CRT 合法性

以下命令来校验 domain.crt 证书,是否是由 ca.crt 证书签发出来的:

openssl verify -verbose -CAFile ca.crt domain.crt

校验 Private Key & CSR & CRT 三者是否是匹配

以下命令是分别提取出 Private Key (domain.key) & CSR (domain.csr) & CRT (domain.crt) 三者中包含的 Public Key,然后通过 md5 运算检查是否一致:

openssl rsa -noout -modulus -in domain.key | openssl md5
openssl req -noout -modulus -in domain.csr | openssl md5
openssl x509 -noout -modulus -in domain.crt | openssl md5


CRT 格式转换

上面通过 X509 证书生成的证书,都是 ASCII PEM 格式进行编码的。然而证书也可以转换成其他格式,有些格式能够将 Private Key & CSR & CRT 三者全部打包在同一个文件中。

PEM 格式 vs DER 格式

The DER format is typically used with Java.

  • PEM 格式转成 DER 格式
openssl x509 \
        -in domain.crt \
        -outform der -out domain.der
  • DER 格式转成 PEM 格式
openssl x509 \
        -inform der -in domain.der \
        -out domain.crt

PEM 格式 vs PKCS7 格式

PKCS7 files, also known as P7B, are typically used in Java Keystores and Microsoft IIS (Windows). They are ASCII files which can contain certificates and CA certificates.

  • PEM 格式转成 PKCS7 格式
openssl crl2pkcs7 -nocrl \
        -certfile domain.crt \
        -certfile ca-chain.crt \
        -out domain.p7b
  • PKCS7 格式转成 PEM 格式
openssl pkcs7 \
        -in domain.p7b \
        -print_certs -out domain.crt

如果你的 PKCS7 文件中包含了多个证书文件 (e.g. domain.crt & ca.crt) ,那上面命令生成的 PEM 文件中将同时包含所有被打包的证书。

PEM 格式 vs PKCS12 格式

PKCS12 files, also known as PFX files, are typically used for importing and exporting certificate chains in Micrsoft IIS (Windows).

  • PEM 格式转成 PKCS12 格式
openssl pkcs12 \
        -inkey domain.key \
        -in domain.crt \
        -export -out domain.pfx
  • PKCS12 格式转成 PEM 格式
openssl pkcs12 \
        -in domain.pfx \
        -nodes -out domain.combined.crt

示例案例

我自己搭建的 Nginx Web Server 想要提供 HTTPS 连接方式,但是觉得不想花钱去找知名 CA 证书中心 (e.g. AWS Certificate Manager) 购买证书。于是我想通过 Self-Signed 的方式来解决我的需求:

  1. 先生成 Self-Signed CA 证书:
openssl req \
        -newkey rsa:2048 -nodes -keyout self-ca.key \
        -x509 -days 365 -out self-ca.crt
  1. 生成 Nginx Web Server 需要的 Private Key & CSR :
openssl req \
        -newkey rsa:2048 -nodes -keyout nginx.key \
        -out nginx.csr
  1. 利用 Self-Signed CA 证书,来签发业务所需要的 CRT 证书:
openssl x509 \
        -req -in nginx.csr \
        -out nginx.crt \
        -CAcreateserial -days 365 \
        -CA self-ca.crt -CAkey self-ca.key

经过了上面 3 个步奏后,你就得到了 self-ca.crt & self-ca.key ,以及由它签发出来的 nginx.crt & nginx.key

如何使用上面 4 个文件:首先将 nginx.crt & nginx.key 部署在 Nginx Web Server 上,然后将 self-ca.crt 发布给客户端即可。客户端就可以通过 self-ca.crt 与业务服务器建立 SSL/TLS 安全连接。

Reference

SSL-TLS 双向认证(一) – SSL-TLS工作原理

OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

玩转 SSL 证书 的相关文章

  • 通过 https 安全登录后,Weblogic 应用程序切换回 http

    我已在 Weblogic 9 2 MP3 上成功配置 SSL 我能够使用 https 安全地登录应用程序 并继续使用 https 协议处理应用程序 当用户访问提供以下 URL 的应用程序时 情况就是如此 https servername 7
  • R 对等证书无法使用给定的 CA 证书进行身份验证,Windows

    当尝试使用导入谷歌工作表时gs read 函数 我收到以下错误消息 在curl curl fetch memory url handle handle 中出错 对等 无法使用给定的 CA 证书对证书进行身份验证 我正在关注这个vignett
  • pip:证书失败,但curl 有效

    我们在客户端安装了根证书 https 连接适用于curl 但如果我们尝试使用pip 它失败 Could not fetch URL https installserver 40443 pypi simple pep8 There was a
  • 地址栏中的 https 锁和公司名称

    我注意到在查看贝宝的网站时 他们的公司名称位于 Chrome 中的锁定图标旁边 这是因为他们创作了 ssl 证书 还是您认为他们是如何实现这一目标的 这是我一直很好奇的事情 但在搜索过程中我很难找到任何答案 您需要一个称为 扩展验证 EV
  • 如果Jetty的密钥库中有多个证书,它如何选择?

    我们的系统中有一些代码用于自动将自签名证书生成到密钥库中 然后由 Jetty 使用 如果给定主机的密钥已经存在 那么什么也不会发生 但如果它不存在 我们会生成一个新密钥 如下所示 public void generateKey String
  • 当建立 TLS / LDAP 或 TLS / HTTP 连接时,线路上会发生什么?

    我正在重新表述我的问题 希望能得到更好的答复 我问了类似的问题这里服务器故障 https serverfault com questions 178561 what are the exact protocol level differen
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • WebView ssl 错误

    对不起我的英语不好 我需要加载 url https 我有一些问题 当我尝试加载页面时 webView 给我错误 primary error 3 certificate Issued to CN my site com Issued by C
  • SSL 握手警报:升级到 Java 1.7.0 后出现 unrecognized_name 错误

    我今天从 Java 1 6 升级到 Java 1 7 从那时起 当我尝试通过 SSL 与我的网络服务器建立连接时 就会发生错误 javax net ssl SSLProtocolException handshake alert unrec
  • Curl 和 Php 5.3.3 中的 SSL 连接错误

    我的网站自 3 年来一直运行良好 代码如下 现在突然从 2 天开始出现以下错误 SSL 连接错误 在 Curl error 中 下面是我的代码
  • 以编程方式将 PEM 证书导入 Java KeyStore

    我有一个由两个文件 crt 和 key 组成的客户端证书 我希望将其导入到 java KeyStore 中 然后在 SSLContext 中使用 以通过 Apache 的 HTTPClient 发送 HTTP 请求 但是 我似乎找不到一种以
  • Web 应用程序的 Spring Boot 和 Comodo https 配置

    我是 https 配置的新手 并尝试配置 spring boot 和 Comodo SSL 经过几次电话和尝试后 我已经弄清楚如何为您的 spring boot 网站正确配置 https 下面的答案是详细步骤 希望它可以帮助人们生成更安全的
  • 使用 SSL 的 Xamarin.Forms Image.Source

    我正在使用一个在线商店来存储通过我们的应用程序上传的用户图像 并受 SSL 保护 上传工作一切顺利 因为我使用的是带有附加证书的 WebClient 但是当我尝试使用 Xamarin Forms Image 组件时 例如将源设置为 http
  • if 不是 localhost 语句 htaccess

    我目前强迫访问者通过 https 访问我的所有网站 主要是 Wordpress 我使用以下代码 RewriteEngine On RewriteCond HTTPS on RewriteRule https SERVER NAME REQU
  • Elastic Beanstalk 添加多个 ssl 证书

    我有一个 Docker Django api 应用程序 可以从多个域 abc xyx com 或 def lmn com 调用 我已从 Elastic beanstalk 中的配置控制台成功添加了 abc xyz com 的 ssl 证书
  • 如何将域添加到 aws 上的现有 SSL 证书

    我有一个与 Amazon Web Services 上的负载均衡器关联的 SSL 证书 我想在该证书上有一个额外的域 我的问题是 是否可以向 aws 上现有的 ssl 证书添加额外的域 我发现您可以在创建证书时添加其他名称 但我不知道如何使
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • 在 Visual Studio 中设置 SSL 证书

    我在新计算机上全新安装了 Visual Studio Community 2019 我启动了一个网络应用程序项目 第一次运行它 然后当提示接受自签名证书时 我以某种方式设法单击 不再询问 and No 此时 运行网络应用程序时 我收到 ER
  • p2p 通信中的对等方如何相互验证?

    WebRTC 中的对等点如何相互验证 WebRTC 中的 DTLS 使用自签名证书 RFC 5763 https www rfc editor org rfc rfc5763具有详细信息 简而言之 证书指纹与 SDP 的 a fingerp
  • 我什么时候需要将“协商客户端证书”设置为启用?

    我可以选择支持客户端证书 这就是为什么我设置Client certificates to Accept在 IIS 上 这适用于大多数机器 然而 在某些机器上 IIS 返回 500 这可以通过设置来 解决 Client certificate

随机推荐

  • 在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法

    注意 xff1a oracle安装不能用root用户安装 xff0c 必须新建用户安装 1 sqlplus 命令不识别问题 xff08 bash xff1a sqlplus command not found xff09 当你首次安装ora
  • 树莓派安装系统和系统备份还原

    最近有使用到树莓派做一些项目 xff0c 下面整理了下树莓派烧录系统到系统镜像备份还原的一些方法 在操作中尝试了windows和ubuntu两个系统下的烧录方式 1 树莓派官网下载Raspberry Pi Imager 登录树莓派官网 找到
  • Gazebo仿真环境中odom和baselink关联一起

    在Gazebo仿真环境中使用slam gmapping采图时发现 xff0c 没有odom数据 xff0c topic map没有数据 通过tf tree发现 odom没有和base link建立关联 日志上可以看到odom完全没有 这需要
  • 相机的变焦,对焦和景深的理解和照相機的成像原理

    首先认识焦距 xff1a 是指平行光线经透镜折射或曲面镜反射后的会聚点 xff0c 点到镜片中心的距离就是f焦距 相机成像时最清晰的位置就是感光阵列位于焦点处 焦距的作用 xff1a 焦距的大小决定着相机视野的范围大小 xff0c 一般焦距
  • 内参、外参、畸变参数三种参数与相机的标定方法与相机坐标系的理解

    有国才有家 xff0c 支持国产 xff0c 生活中点滴做起 xff0c 买手机就买华为 xff0c 这是我们国家IT界的脊梁 xff01 xff01 xff01 1 相机参数是三种不同的参数 相机的内参数是六个分别为 xff1a 1 dx
  • 基于ubuntu16.04配置VNC远程连接

    VNC官网下载https www realvnc com en connect download vnc linux 下载后的文件是VNC Server 6 3 1 Linux x86 deb xff0c 执行命令 xff1a sudo d
  • 关于Ubuntu与Debian的关系,了解!

    饮水思源 xff1a Ubuntu用户应关注Debian 当今最热门的桌面Linux非Ubuntu莫属 xff0c 它已经拥有数量众多的爱好者 xff0c 已经成为PC用户的主流操作系统之一 尽管Ubuntu相对还比较年 轻 xff0c 但
  • 最优化问题及其分类

    优化技术是一种以数学为基础 xff0c 用于求解各种工程问题优化解的应用技术 归纳而言 xff0c 最优化问题分为函数优化问题和组合优化问题两大类 xff0c 其中函数优化的对象是一定区间的连续变量 xff0c 而组合优化的对象则是解空间中
  • 50个有趣的休闲网站 (外国)

    有选择的余地是件好事 xff0c 但是如果选择太多了也让人烦恼 我们在网络上进行了搜索 xff0c 挑出了50个最有用而有趣的网站 今天互联网已经是很大的生意 无论你是想要购买一辆汽车 出售家庭产品 做生意或者收集难以找到的信息 xff0c
  • 一个不错的技术面试官是怎么样的?

    一个不错的技术面试官是怎么样的 xff1f 转载自 xff1a http t cn AiWwBM2b 作者 Jartto 作为技术面试官 xff0c 面试过程很少考虑候选人的感受 上来就是问 xff0c 不合适就送走 虽然技术环节我很专业
  • SVN update 返回值的含义

    本文来自网络 当你从代码库里面更新自己本地的工作拷贝的时候 xff0c update返回的值意思如下 xff1a u foo 文件foo更新了 xff08 从服务器收到修改 xff09 A foo 文件或目录foo被添加到工作拷贝 D fo
  • Linux DRM Graphic 显示简单介绍

    好久没有写过博客了 xff0c 工作之后平时都没有总结 xff0c 感觉像做了学到很多东西 xff0c 但是又感觉什么都没有学到 xff0c 似懂非懂 xff08 真尼玛纠结 xff09 突然别人说的一句话 xff0c 学东西不仅仅是自己学
  • Linux DRM KMS 驱动简介

    Whoops xff0c 上次写完 Linux DRM Graphic 显示简单介绍 博文后 xff0c 心情还是蛮愉悦的 xff0c 来来 xff0c 这次在说说具体的显卡驱动 1 DRM 框架分解 DRM 框架提供了一系列的 IOCTL
  • Vim 自动补全插件 YouCompleteMe 安装与配置

    本文系转载文章 xff0c 原文链接 http howiefh github io 2015 05 22 vim install youcompleteme plugin Contents 1 概述 2 安装 2 1 完全安装 2 2 Ub
  • Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

    转载请注明出处 xff1a http kyang cc 栈是什么 xff1f 栈有什么作用 xff1f 首先 xff0c 栈 stack 是一种串列形式的 数据结构 这种数据结构的特点是 后入先出 LIFO Last In First Ou
  • SD-WAN 到底是什么?

    转载请注明出处 xff1a http kyang cc In a nutshell SD WAN Virtualizes the networkEnables a secure overlaySimplifies services deli
  • SDN, SD-WAN, NFV, VNF: What Is All This?

    本文转载至 xff1a http www velocloud com sd wan blog sdn sd wan nfv vnf Inscrutable alphabet soup Even the fully expanded term
  • Top-down Design简介

    自顶向下 xff0c 逐步求精的方法 在英文中称作Top down Design xff0c 是一种计算机编程使用的算法思想 xff0c 顾名思义 xff0c 这种方法的思想就是对现在遇到的复杂或者抽象化的问题 xff0c 进行纵向深入分解
  • The Advantages of SD‐WAN over Traditional WAN

    转载请注明出处 xff1a http kyang cc An SD WAN has several advantages over a traditional WAN 重点内容 Simplified WAN Rapid deployment
  • 玩转 SSL 证书

    Introduction Openssl 是一个很牛逼的工具 xff0c 基本能搞定 PKI amp HTTPS 证书相关的事情 这篇博文归类了一堆常用的命令 xff0c 全部都是关于 key amp csr amp crt 本文分成两部分