OpenSSL:使用 SSL 证书、私钥和 CSR

2023-10-17

OpenSSL 是一个强大的、功能齐全的开源工具包,它实现了 SSL 和 TLS 协议以及通用加密库。它广泛用于管理各种系统中的 SSL/TLS 证书、私钥和证书签名请求 (CSR)。在本文中,我们将探讨如何使用 OpenSSL 来处理 SSL 证书、私钥和 CSR,并提供示例来帮助您理解每个步骤。

介绍

  • SSL 证书:这些数字证书用于使用 SSL/TLS 协议在服务器和客户端之间建立安全连接。它们包含有关证书持有者、证书颁发者和公钥的信息。
  • 私钥:这些是 SSL/TLS 握手过程中用于保护连接的加密密钥。它们必须保密且安全。
  • CSRs:证书签名请求是发送到证书颁发机构 (CA) 请求服务器数字证书的消息。

安装 OpenSSL

在使用 OpenSSL 之前,请确保您的系统上已安装它。对于大多数 Linux 发行版,OpenSSL 已预先安装。如果没有,您可以使用包管理器安装它。例如:

  • Ubuntu/Debian:`sudo apt-get install openssl`
  • CentOS/费多拉:`sudo yum 安装 openssl`

对于Windows,您可以从官方网站下载最新版本:https://www.openssl.org/

生成私钥

要创建私钥,请使用以下命令:

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048 

此命令生成 2048 位 RSA 私钥并将其保存在 private_key.pem 文件中。

创建企业社会责任

要使用之前创建的私钥生成 CSR,请运行以下命令:

openssl req -new -key private_key.pem -out csr.pem 

系统将提示您输入有关您的组织和服务器的信息,例如国家/地区、州、城市、组织名称、公用名(域名)和电子邮件地址。完成提示后,CSR 将保存在 csr.pem 文件中。

自签名 SSL 证书

在某些情况下,您可能需要自签名证书用于测试目的。要创建一个,请使用以下命令:

openssl x509 -req -in csr.pem -signkey private_key.pem -out self_signed_certificate.pem -days 365 

此命令使用提供的 CSR 和私钥创建有效期为 365 天的自签名 SSL 证书。

检查 SSL 证书、私钥和 CSR

要查看 SSL 证书的详细信息,请使用:

openssl x509 -in certificate.pem -text -noout 

要检查私钥,请使用:

openssl rsa -in private_key.pem -text -noout 

要查看 CSR,请使用:

openssl req -in csr.pem -text -noout 

转换证书格式

OpenSSL 支持证书转换,例如将 PEM 证书转换为 DER 格式:

openssl x509 -in certificate.pem -outform der -out certificate.der 

此命令将certificate.pem文件从PEM格式化为DER格式并将其另存为certificate.der。

要将 DER 证书转换为 PEM 格式,请使用:

openssl x509 -inform der -in certificate.der -out certificate.pem 

该命令将转换证书.der文件来自DER格式化为PEM格式并将其另存为certificate.pem。

续订和吊销 SSL 证书

要续订 SSL 证书,您需要创建新的 CSR 并将其提交给证书颁发机构 (CA)。按照第 3 节和第 4 节中概述的步骤生成新的私钥(如果需要)和新的 CSR。将新的 CSR 发送给您的 CA,他们将为您提供更新的 SSL 证书。

要吊销 SSL 证书,请联系您的证书颁发机构 (CA) 并向他们提供必要的详细信息,例如证书序列号或证书副本。然后,CA 会将证书添加到其证书吊销列表 (CRL),通知客户端该证书不再有效。

结论

在本文中,我们介绍了如何使用 OpenSSL 来处理 SSL 证书、私钥和 CSR。我们探索了如何生成私钥、创建 CSR、自签名 SSL 证书、检查各种 SSL 相关文件、转换证书格式以及续订或撤销 SSL 证书。有了这些知识,您就可以放心地管理项目的 SSL 证书,确保客户端和服务器之间的安全和加密连接。

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

OpenSSL:使用 SSL 证书、私钥和 CSR 的相关文章

  • 通过 SQL 或 phpMyAdmin 重置 SugarCRM 管理员密码

    问题 如何通过 SQL 查询重置 SugarCRM 管理员密码 如何使用 phpMyAdmin 重置 SugarCRM 管理员密码 如何使用 SQL 查询重置 SugarCRM 忘记的密码 如何找到 SugarCRM 默认管理员密码 如果您
  • MySQL 数据库备份 RPM

    几个月前我创建了这个 rpm 现在它可供所有用户使用 这个 rpm 有一个简单的 shell 脚本用于 mysql 数据库备份 特征 在本地进行数据库备份 将备份上传到 ftp 服务器 备份完成后发送电子邮件警报 安装 直接使用命令行或使用
  • JavaScript 中删除字符串最后一个字符的 2 种方法

    问题 如何从 JavaScript 或 Node js 脚本中的字符串中删除最后一个字符 本教程介绍了使用 JavaScript 编程语言从字符串中删除最后一个字符的 2 种方法 您可以根据需要使用以下任意一种方法 方法 1 使用 subs
  • 如何在 Ubuntu 22.04 上安装 Docker

    Docker 通过启用轻量级容器化技术彻底改变了开发人员创建 部署和管理应用程序的方式 该技术允许轻松管理和隔离应用程序及其依赖项 在本教程中 我们将指导您完成在 Ubuntu 22 04 上安装 Docker 的过程 Ubuntu 22
  • 在 cPanel 帐户中启用 Apache Gzip 压缩 (mod_deflate)

    Apache mod deflate模块用于在向客户端提供服务之前压缩内容 仅当您的托管提供商在 Apache 中启用了 mod deflate 模块时 您才可以配置压缩 WHM 管理员可以全局启用 Gzip对于所有使用 WHM 控制面板的
  • 适用于不同用例的十大 Linux 发行版

    Linux 是一种开源操作系统 可以根据用户的需求和偏好为用户提供多种选择 Linux 的优点在于它是高度可定制的 这意味着用户可以调整操作系统以满足他们的特定要求 然而 由于有如此多的 Linux 发行版可供选择 因此决定选择哪一个可能会
  • Apache 中的平滑重启是什么

    Apache HTTP Server 通常称为 Apache 是一种非常流行的开源 Web 服务器软件 在 Web 内容的交付中发挥着重要作用 Apache 非常灵活 允许使用多种关键功能和配置来帮助优化其性能 其中一项重要功能是 平滑重启
  • 如何在 Linux 中使用“find”命令删除 X 天之前修改的文件

    The find Linux 中的命令是一个功能强大的工具 可用于根据各种条件 例如名称 类型 大小和时间戳 搜索文件 查找 命令的一个常见用例是删除超过一定天数的文件 这对于清理旧备份 日志文件或不再需要的其他类型的文件非常有用 在本文中
  • 如何在 CentOS 8 上安装 Anaconda

    Anaconda 是最流行的 Python R 数据科学和机器学习平台 它用于大规模数据处理 预测分析和科学计算 Anaconda 发行版附带 1 500 多个开源数据包 它还包括conda命令行工具和称为 Anaconda Navigat
  • 如何在 Ubuntu 18.04 上安装 Magento 2

    Magento是基于开源技术构建的领先企业级电子商务平台 将强大的功能与灵活性和用户友好的界面相结合 凭借引人入胜的购物体验 灵活的模块化架构以及企业级可扩展性和性能等功能 Magento 是大多数在线商家的首选平台 在本教程中 我们将向您
  • 如何在 Ubuntu 20.04 上安装 Skype

    Skype是世界上最流行的通信应用程序之一 它是跨平台的 可在 Windows Linux 和 macOS 上使用 通过 Skype 您可以免费进行在线音频和视频通话 以及拨打世界各地的手机和固定电话的国际电话 Skype 不是开源应用程序
  • 如何使用 .htaccess 强制使用 HTTPS

    如果您为域安装了 SSL 证书 则下一步应该是将应用程序配置为通过 HTTPS 提供所有 Web 流量 与以明文形式发送和返回请求和响应的 HTTP 不同 HTTPS 使用 TLS SSL 来加密客户端和服务器之间的通信 相对于 HTTP
  • 如何在 CentOS 8 上安装和配置 NFS 服务器

    网络文件系统 NFS 是一种分布式文件系统协议 允许您通过网络共享远程目录 使用 NFS 您可以在系统上挂载远程目录并像使用本地文件一样使用远程计算机上的文件 NFS 协议默认不加密 并且与 Samba 不同 它不提供用户身份验证 对服务器
  • 如何检查 Bash 中文件或目录是否存在

    很多时候 在编写 Shell 脚本时 您可能会发现自己处于需要根据文件是否存在来执行操作的情况 在Bash中 可以使用test命令来检查文件是否存在并判断文件的类型 测试命令采用以下语法形式之一 test EXPRESSION EXPRES
  • 如何在 Python 中分割字符串

    使用字符串时 日常操作之一是使用给定的分隔符将字符串拆分为子字符串数组 在这篇文章中 我们将讨论如何在Python中分割字符串 split 方法 在Python中 字符串被表示为不可变的str对象 这str类附带了许多字符串方法 允许您操作
  • 如何在 Ubuntu 18.04 上安装和配置 Samba

    Samba 是一个免费且开源的重新实现SMB CIFS网络文件共享协议那 允许最终用户访问文件 打印机和其他共享资源 本教程介绍如何在 Ubuntu 18 04 上安装 Samba 并将其配置为独立服务器 以通过网络在不同操作系统之间提供文
  • 如何在 CentOS 7 上安装和使用 Docker Compose

    Docker 组合是一个允许您定义和运行多容器 Docker 应用程序的工具 使用 Compose 您可以在单个 YAML 文件中定义应用程序的服务 网络和卷 然后使用单个命令启动您的应用程序 Compose 可用于不同的目的 例如单主机应
  • 在 Debian 9 上使用 Let's Encrypt 保护 Nginx

    Let s Encrypt 是由互联网安全研究小组 ISRG 开发的免费开放的证书颁发机构 如今 Let s Encrypt 颁发的证书几乎受到所有浏览器的信任 在本教程中 我们将解释如何使用 Certbot 工具为 Debian 9 上的
  • 如何在 Ubuntu 18.04 上安装和配置 GitLab

    GitLab 是一个基于网络的开源Git存储库管理器编写为Ruby包括 wiki 问题管理 代码审查 监控以及持续集成和部署 它使开发人员能够创建 审查和部署他们的项目 GitLab 提供三种不同版本 社区版 CE 企业版 EE 和 Git
  • 如何在 Ubuntu 18.04 上安装 Steam

    Steam是由 Valve 公司开发的用于购买和玩视频游戏的跨平台娱乐平台 它使您可以访问数千种游戏并结识新朋友 在本教程中 我们将向您展示如何在 Ubuntu 18 04 上安装 Steam 相同的说明适用于 Ubuntu 16 04 和

随机推荐

  • Python 中的列表与元组:综合指南

    Python 提供了多种内置数据类型 其中两个是列表和元组 了解这些数据结构的细微差别对于编写高效且有效的 Python 代码至关重要 在本教程结束时 您将能够就何时使用列表以及何时选择元组做出明智的决定 从而提高您在 Python 中处理
  • 使用 to_pickle() 函数将 Pandas DataFrame 导出到 Pickle 文件

    The to pickle函数于Pandas允许您将 DataFrame 或 Series 对象序列化 pickle 为 pickle 文件格式 当您想要保存 DataFrame 或 Series 的当前状态并稍后检索它而不丢失任何数据或元
  • 掌握 Samba:创建强大的 Linux 文件服务器

    Linux 文件服务器是功能强大的服务器之一 可帮助您与基于 Windows 的 PC 和其他操作系统共享文件和打印机 在我们讨论使用 Samba 作为文件服务器之前 我们先讨论一些基础知识 目录 hide 1 Linux Samba Wi
  • Linux Sed 分支:条件文本处理

    分支于sed允许您在 sed 脚本中创建条件工作流程 根据输入或特定条件 sed 可以选择执行一组命令而不是另一组命令 它类似于编程中的 if then else 结构 让我们深入研究一些示例来了解 sed 中的分支机制 目录 hide 1
  • 使用 read_pickle 读取 Pandas 中的 Pickle 文件

    read pickle in Pandas允许您加载腌制的 Pandas 对象 它可以加载数据 例如数据框和使用保存的系列熊猫 to pickle method 在本教程中 我们将揭示其语法 将 pickle 文件加载到 DataFrame
  • 在 Linux 上恢复已删除的文件(初学者教程)

    您是否曾经错误地删除过重要文件 谁不呢 好的 但是我可以恢复它们吗 在这篇文章中 您将了解如何使用不同文件系统上的各种程序在 Linux 上恢复已删除的文件 您将了解如何从 SD 卡 HDD 和不同分区上的已删除分区恢复已删除的文件Linu
  • 掌握 seq 命令:Linux 中的序列生成

    The seqLinux 中的命令用于生成数字序列 如果您想生成一个简单的增量列表或具有特定格式的复杂序列 seq可以做到这一点 让我们深入了解它的强大功能 目录 hide 1 生成从 1 到指定数字的序列 2 生成两个数字之间的序列 3
  • 在 Linux 中设置永久和系统范围的环境变量

    在 Linux 中 环境变量是一个可用于提供系统不同部分的配置和数据的值 这些变量充当数据的占位符 使应用程序和 shell 能够更顺畅地相互交互 环境变量的一个主要优点是它们促进进程之间的值共享 从而实现对系统行为各方面的集中控制 目录
  • 使用 to_html 将 Python Pandas DataFrame 转换为 HTML 表

    This to html函数于Pandas允许您转换您的数据框到 HTML 表中 它具有高度可定制性和灵活性 使您能够根据您的要求定制 HTML 输出结果 这可能包括设计数据的样式和格式以适合您所需的演示文稿 目录 hide 1 语法和参数
  • 使用 Pandas DataFrame loc 属性进行基于标签的访问

    The loc财产在Pandas允许基于标签的索引 这意味着您使用标签 如列名和行索引 来访问特定的行和列数据框 Unlike iloc 它使用基于整数的索引 loc主要是基于标签的 使其能够处理具有有意义标签的数据 目录 hide 1 P
  • 使用Python random模块生成随机数

    随机数生成是编程中的一个基本概念 对于统计采样 模拟 数据生成 随机算法甚至游戏等各种任务至关重要 在本教程中 我们将介绍基本概念 如何生成不同类型的随机数 如整数 浮点数和特定范围内的随机数 以及随机数提供的各种函数 random mod
  • Linux Syslog 服务器和日志管理

    在这篇文章中 我们将讨论 Linux Syslog 服务器以及如何管理日志 如果您想保护您的系统 您必须知道该系统中发生了什么 您可以使用日志来做到这一点 通过日志 您可以诊断问题并确定系统和应用程序的运行状况 在上一篇文章中 我们讨论了如
  • 如何在 Shell 脚本中提取文件名和扩展名

    要从 shell 脚本中的文件路径中提取文件名和扩展名 您可以使用 基本名称 命令 这是一个如何使用的示例basename来提取filename and 扩大从给定的文件路径 usr bin env bash Define a file p
  • 如何在 Ubuntu 和 Debian 上删除 PPA 存储库

    个人包档案 PPA 是 Ubuntu 和 Debian 用户安装和更新官方存储库中未提供的软件包的便捷方法 虽然 PPA 是宝贵的资源 但它们也可能会过时 不受支持 甚至可能有害 在这种情况下 了解如何将它们从系统中删除非常重要 在本文中
  • 如何在 Debian 11/10 上安装 Sublime

    崇高的文字是一个功能强大的文本编辑器 也可用于 Linux 系统 它有很多你一定喜欢使用的功能 本教程将帮助您使用个人软件包存档 PPA 在 Debian 11 Debian 10 和 Debian 8 Linux 系统上安装 Sublim
  • /tmp 文件夹 100% 已满 ( cPanel )

    Issue 今天 我发现 tmp 显示 100 已满 但是 从 tmp 删除所有文件后 它仍然显示已满 经过谷歌搜索后 我发现有一些文件从 tmp 文件夹中删除 但仍然被进程使用 占用了所有空间 通常这些文件由apache或mysql使用
  • Linux 中的 tar 命令及实际示例

    tar 命令是 Linux 用户的必备工具 特别是对于那些使用大量文件的用户 tar 命令允许您将多个文件组合成一个存档文件 还可以从存档中提取文件 在本文中 我们将为初学者提供有关 Linux 中 tar 命令基础知识的全面指南 什么是
  • 什么是 SNMP(简单网络管理协议)?

    简单网络管理协议 SNMP 是任何网络管理员工具箱中不可或缺的一部分 作为许多网络监控策略的支柱 SNMP 在维护健康且功能正常的网络方面发挥着关键作用 本文旨在深入研究 SNMP 的复杂性 重点介绍其功能 应用程序以及为什么它在当今的网络
  • 如何在 Ubuntu 20.04 上安装 Ruby

    Ruby 是动态的开源编程语言 其重点是编码简单性和提高生产力 第一个 Ruby 版本 0 95 于 1995 年发布 此后 在过去几年中发布了几个稳定的 Ruby 版本 在撰写本教程时 Ruby 2 7 0 是可用于开发的最新稳定版本 本
  • OpenSSL:使用 SSL 证书、私钥和 CSR

    OpenSSL 是一个强大的 功能齐全的开源工具包 它实现了 SSL 和 TLS 协议以及通用加密库 它广泛用于管理各种系统中的 SSL TLS 证书 私钥和证书签名请求 CSR 在本文中 我们将探讨如何使用 OpenSSL 来处理 SSL