Skip to main content

Encryption, Signature, and Hash

加密算法​

  1. 对称加密
  2. 非对称加密
    1. RSA
    2. SHA256

签名算法​

TODO

哈希摘要算法​

TODO

实践​

HTTP API 内的认证​

两个企业的 HTTPS API 对接,主要使用非对称加密。

双方各自生成非对称密钥对、申请证书,双方交换证书(证书中含有公钥)。

当企业 A 请求企业 B 时

  1. 加密。如需对内容加密。可以用企业 B 的公钥加密,加密后的内容只有拥有私钥的企业 B 才能够解密。
  2. 签名。如需对内容生成校验码。可以用企业 A 的私钥加密,加密后的内容可以用企业 A 的公钥才能够解密,并且可以和传递的内容作对比校验。由于只有企业 A 有私钥,所以其他企业都无法篡改这个校验码。

TODO

SSL Checker​

image-20240917145403909

Let's Encrypt​

在 Let's Encrypt 上创建证书的过程可以通过其官方推荐的工具 Certbot 来实现。Certbot 是一个自动化的工具,可以帮助你轻松获取和更新 SSL/TLS 证书。以下是使用 Certbot 创建 Let's Encrypt 证书的步骤:

1. 安装 Certbot​

首先,根据你的服务器类型(如 Apache、Nginx)以及操作系统(如 Ubuntu、CentOS)来安装 Certbot。

  • Ubuntu(使用 Apache 作为示例):

    sudo apt update
    sudo apt install certbot python3-certbot-apache
  • CentOS(使用 Nginx 作为示例):

    sudo yum install certbot python3-certbot-nginx

2. 使用 Certbot 创建证书​

假设你已经安装好 Certbot,并且有域名指向你的服务器。使用以下命令来获取证书:

  • Apache:

    sudo certbot --apache
  • Nginx:

    sudo certbot --nginx

Certbot 会自动检测你的 Web 服务器,并引导你完成证书生成的过程。你需要输入一些信息,比如你的电子邮件地址,并选择你想要获取证书的域名。Certbot 还会自动为你配置 HTTPS。

3. 验证和续订​

Let's Encrypt 的证书默认有效期是 90 天,但 Certbot 可以帮你自动续订证书。你可以运行以下命令来测试自动续订是否有效:

sudo certbot renew --dry-run

如果你想手动续订证书,可以使用以下命令:

sudo certbot renew

4. 配置自动续订​

Certbot 通常会自动安装一个定时任务(cron job),每隔一段时间检查并自动续订证书。如果你想手动检查这些任务,可以运行以下命令:

sudo systemctl list-timers

通过这些步骤,你可以在 Let's Encrypt 上创建并管理证书,从而为你的服务器启用 HTTPS 加密。

More​

TODO

  • HMAC(AK/SK)认证

  • HMAC SHA256 签名验证 =======

  • HTTPS SSH 认证

  • SSL 证书,letsencrypt get free certificate https://letsencrypt.org/ and auto-refresh tools

  • SSH vs SSL?

  • SSL 证书之于 HTTPS

  • Https SSH 认证

  • Let's encrypt is using sha256WithRSAEncryption

  • Kafka's SCRAM-SHA-512

Reference​

  1. 一文搞懂SSH、SSL和HTTPS
  2. SSL Checker
  3. SSH、SSL与HTTPS的联系
  4. Let's Encrypt 非盈利证书机构