searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

自签名证书介绍及应用场景

2024-11-04 09:32:48
15
0

要让浏览器信任自签名的 CA(认证机构)证书,我们需要将这个 CA 证书导入到浏览器的信任证书库中。具体来说,这个 CA 证书将充当信任根证书(Root Certificate),浏览器信任后,它就会信任由该 CA 签发的其他证书。

1. 生成 CA 根证书

首先,我们生成一个自签名的 CA 根证书,用于签署其他服务器证书。

使用 OpenSSL 生成 CA 根证书

假设我们使用 OpenSSL 生成 CA 根证书:

# 生成 CA 私钥
openssl genpkey -algorithm RSA -out myCA.key -pkeyopt rsa_keygen_bits:2048

# 生成自签名的 CA 证书,有效期为 10 年
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 3650 -out myCA.pem
  • myCA.key:CA 的私钥,用于签署其他证书。
  • myCA.pem:CA 的自签名证书,可以导入到浏览器的信任证书库。

在执行此命令时,你会被要求提供一些信息(如国家、组织、Common Name 等),这些信息将用于 CA 证书的主体(Subject)。

2. 在浏览器中导入 CA 根证书

要让浏览器信任此 CA 证书,需要将 myCA.pem 导入到系统或浏览器的证书管理器中,步骤可能因操作系统和浏览器不同。

在 Windows 中导入证书

  1. 双击 myCA.pem 文件,打开证书导入向导。
  2. 选择“本地计算机”作为存储位置,然后继续。
  3. 将证书安装到“受信任的根证书颁发机构”。
  4. 完成导入,浏览器将信任该 CA 证书。

在 macOS 中导入证书

  1. 打开“钥匙串访问”(Keychain Access),在应用程序 > 实用工具中找到。
  2. 选择“系统”钥匙串。
  3. 点击“文件” > “导入项目”,选择 myCA.pem
  4. 导入后,右键点击该证书,选择“获取信息”,将其设置为“始终信任”。

在 Linux 中导入证书

  1. myCA.pem 文件复制到系统的 CA 存储目录,通常在 /usr/local/share/ca-certificates/

  2. 使用以下命令更新 CA 库:

    sudo cp myCA.pem /usr/local/share/ca-certificates/myCA.crt
    sudo update-ca-certificates
    

在浏览器中导入证书

如果只希望在特定浏览器中使用信任证书,可以在浏览器设置中导入:

  1. Google Chrome / Firefox
    • 打开浏览器设置,找到“隐私与安全” > “证书”或“安全”。
    • 选择“管理证书” > “导入”。
    • 选择 myCA.pem,并将其添加到“受信任的根证书颁发机构”。
  2. 重启浏览器以使更改生效。

3. 使用 CA 证书签署服务器证书

CA 根证书导入成功后,我们可以使用该 CA 证书为需要的域名签署服务器证书。签署的服务器证书将自动受到信任。

生成服务器证书并使用 CA 签署

  1. 生成服务器私钥和证书请求 (CSR)

    openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048
    openssl req -new -key server.key -out server.csr
    
  2. 使用 CA 证书签署服务器证书

    openssl x509 -req -in server.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out server.crt -days 365 -sha256
    
    • server.crt 就是服务器证书,由自签的 CA 证书签发。
  3. 配置服务器:将 server.keyserver.crt 配置到你的 HTTPS 服务器(如 Nginx、Apache 或 Golang 的 TLS 服务器)上。

4. 验证浏览器信任

此时,当浏览器访问使用 server.crt 的服务器时,应看到 HTTPS 是绿色安全的,而不会再显示“证书不受信任”的警告。

总结

  1. 生成一个自签名的 CA 证书。
  2. 将 CA 证书导入系统或浏览器的信任证书库。
  3. 使用 CA 证书签署服务器证书。
  4. 配置 HTTPS 服务器并验证浏览器信任。

通过以上步骤,你的浏览器将信任由这个 CA 证书签发的所有服务器证书。

0条评论
作者已关闭评论
郑****辉
6文章数
0粉丝数
郑****辉
6 文章 | 0 粉丝
郑****辉
6文章数
0粉丝数
郑****辉
6 文章 | 0 粉丝
原创

自签名证书介绍及应用场景

2024-11-04 09:32:48
15
0

要让浏览器信任自签名的 CA(认证机构)证书,我们需要将这个 CA 证书导入到浏览器的信任证书库中。具体来说,这个 CA 证书将充当信任根证书(Root Certificate),浏览器信任后,它就会信任由该 CA 签发的其他证书。

1. 生成 CA 根证书

首先,我们生成一个自签名的 CA 根证书,用于签署其他服务器证书。

使用 OpenSSL 生成 CA 根证书

假设我们使用 OpenSSL 生成 CA 根证书:

# 生成 CA 私钥
openssl genpkey -algorithm RSA -out myCA.key -pkeyopt rsa_keygen_bits:2048

# 生成自签名的 CA 证书,有效期为 10 年
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 3650 -out myCA.pem
  • myCA.key:CA 的私钥,用于签署其他证书。
  • myCA.pem:CA 的自签名证书,可以导入到浏览器的信任证书库。

在执行此命令时,你会被要求提供一些信息(如国家、组织、Common Name 等),这些信息将用于 CA 证书的主体(Subject)。

2. 在浏览器中导入 CA 根证书

要让浏览器信任此 CA 证书,需要将 myCA.pem 导入到系统或浏览器的证书管理器中,步骤可能因操作系统和浏览器不同。

在 Windows 中导入证书

  1. 双击 myCA.pem 文件,打开证书导入向导。
  2. 选择“本地计算机”作为存储位置,然后继续。
  3. 将证书安装到“受信任的根证书颁发机构”。
  4. 完成导入,浏览器将信任该 CA 证书。

在 macOS 中导入证书

  1. 打开“钥匙串访问”(Keychain Access),在应用程序 > 实用工具中找到。
  2. 选择“系统”钥匙串。
  3. 点击“文件” > “导入项目”,选择 myCA.pem
  4. 导入后,右键点击该证书,选择“获取信息”,将其设置为“始终信任”。

在 Linux 中导入证书

  1. myCA.pem 文件复制到系统的 CA 存储目录,通常在 /usr/local/share/ca-certificates/

  2. 使用以下命令更新 CA 库:

    sudo cp myCA.pem /usr/local/share/ca-certificates/myCA.crt
    sudo update-ca-certificates
    

在浏览器中导入证书

如果只希望在特定浏览器中使用信任证书,可以在浏览器设置中导入:

  1. Google Chrome / Firefox
    • 打开浏览器设置,找到“隐私与安全” > “证书”或“安全”。
    • 选择“管理证书” > “导入”。
    • 选择 myCA.pem,并将其添加到“受信任的根证书颁发机构”。
  2. 重启浏览器以使更改生效。

3. 使用 CA 证书签署服务器证书

CA 根证书导入成功后,我们可以使用该 CA 证书为需要的域名签署服务器证书。签署的服务器证书将自动受到信任。

生成服务器证书并使用 CA 签署

  1. 生成服务器私钥和证书请求 (CSR)

    openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048
    openssl req -new -key server.key -out server.csr
    
  2. 使用 CA 证书签署服务器证书

    openssl x509 -req -in server.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out server.crt -days 365 -sha256
    
    • server.crt 就是服务器证书,由自签的 CA 证书签发。
  3. 配置服务器:将 server.keyserver.crt 配置到你的 HTTPS 服务器(如 Nginx、Apache 或 Golang 的 TLS 服务器)上。

4. 验证浏览器信任

此时,当浏览器访问使用 server.crt 的服务器时,应看到 HTTPS 是绿色安全的,而不会再显示“证书不受信任”的警告。

总结

  1. 生成一个自签名的 CA 证书。
  2. 将 CA 证书导入系统或浏览器的信任证书库。
  3. 使用 CA 证书签署服务器证书。
  4. 配置 HTTPS 服务器并验证浏览器信任。

通过以上步骤,你的浏览器将信任由这个 CA 证书签发的所有服务器证书。

文章来自个人专栏
代理
4 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0