OpenSSL入门教程分为6步骤 » 江湖人士

您所在的位置:网站首页 openssl使用教程 OpenSSL入门教程分为6步骤 » 江湖人士

OpenSSL入门教程分为6步骤 » 江湖人士

#OpenSSL入门教程分为6步骤 » 江湖人士| 来源: 网络整理| 查看: 265

本文阅读导航 展开 1 OpenSSL教程:互联网安全简介 2 OpenSSL入门教程 3 第1部分-入门 4 第2部分-公钥和私钥 5 第3部分-创建数字签名 6 第4部分-证书签名请求 7 第5部分-生成SSL证书 8 第6部分-查看证书 9 OpenSSL入门教程结论 OpenSSL入门教程分为6步骤

OpenSSL入门教程分为6步骤,OpenSSL是最受欢迎的加密库之一。它最常用于实现安全套接字层和传输层安全性(SSL和TLS)协议,以确保计算机之间的安全通信。近年来,由于TLS提供更高级别的安全性,所以SSL基本上已经过时了,但是有些人已经习惯了将这两种协议都称为SSL。

密码术是一项棘手的事情,OpenSSL具有太多的功能以至于不能在一篇文章中介绍,但是此OpenSSL教程将帮助您开始创建密钥和证书。

OpenSSL教程:互联网安全简介

当客户端请求与服务器的安全连接时,服务器又请求信息以找出客户端可以支持的密码安全类型。一旦确定了最安全的选项,就会发生以下情况:

服务器发送使用服务器的公共密钥签名的安全证书。客户端验证证书后,它将生成一个私钥,并将其发送到使用公钥加密的服务器。接下来,双方都使用秘密密钥来创建两组公共-私有密钥。最后,可以开始安全通信。

SSL和TLS是用于完成这些步骤的许多安全协议中的两个。要实现这些协议,我们需要像OpenSSL这样的软件。

OpenSSL入门教程

在本指南和其他OpenSSL教程中,您会遇到大量的缩写。为了快速参考,以下是您可能会遇到的一些术语的简短列表:

CSR:证书签名请求DER:杰出的编码规则PEM:隐私增强型邮件PKCS:公钥密码标准SHA:安全哈希算法SSL:安全套接字层TLS:传输层安全性第1部分-入门

您可以从官方OpenSSL网站下载大多数平台的源代码。

如果您需要Windows发行版,尽管有很多选择,但Shining Light Productions还是不错的选择。成功安装所有组件后,让我们开始尝试使用OpenSSL命令行工具。

首先,您可以使用以下命令显示您正在运行的OpenSSL版本:

openssl version -a OpenSSL入门教程OpenSSL入门教程

要获取标准命令的完整列表,请输入以下内容:

openssl list-standard-commands

查看官方OpenSSL文档,以获取有关标准命令的说明。要查看OpenSSL中可用的许多秘密算法,请使用:

openssl list-cipher-commands

现在,让我们尝试一些加密。如果您想加密文本“ Hello World!” 使用使用CBC模式和256位密钥的AES算法,您将执行以下操作:

touch plain.txt echo "Hello World!" > plain.txt openssl enc -aes-256-cbc -in plain.txt -out encrypted.bin //enter aes-256-cbc encryption password: example //Verifying - enter aes-256-cbc encryption password: example

系统将提示您输入一个密码,将从该密码中计算出256位密钥。在上面的示例中,使用了密码example,但是您应该使用更强的密码。现在,您应该有一个名为的二进制文件encrypted.bin,您可以按以下步骤解密:

openssl enc -aes-256-cbc -d -in encrypted.bin -pass pass:example // Hello World! 第2部分-公钥和私钥

为了举例说明,我们可以演示OpenSSL如何使用RSA算法管理公共密钥。您当然可以使用其他算法,并且将应用相同的原理。第一步是生成公用和专用密钥对。输入以下命令以创建一个1024位的RSA密钥:

openssl genrsa -out key.pem 1024

现在,您应该有一个key.pem包含公用密钥和专用密钥的文件。就像文件名所暗示的那样,私钥是使用“增强隐私电子邮件”(PEM)标准进行编码的。使用以下代码显示它:

cat key.pem

您应该看到字符的长组合。有关如何生成密钥的详细信息,请输入:

openssl rsa -in key.pem -text -noout

此命令应返回有关公共和私有指数,模数以及用于优化算法的其他方法和数字的信息。在这种情况下,该-noout选项可防止以base 64格式显示密钥,这意味着只能看到十六进制数字。当然,公共指数是一个例外,因为1024位密钥始终为65537。

要加密我们的私钥,我们使用以下代码:

openssl rsa -in key.pem -des3 -out enc-key.pem

密钥文件加密后,将提示您创建密码。接下来,我们可以key.pem使用以下命令从文件中提取公钥:

openssl rsa -in key.pem -pubout -out pub-key.pem

最后,我们准备使用我们的密钥加密文件。使用以下格式:

openssl pkeyutl -encrypt -in -inkey -out

在上述情况下,是您要加密的文件。由于我们使用的是RSA,请记住该文件不能超过116个字节。该是包含公开密钥的文件。如果该文件也不包含私钥,则必须使用指示-pubin。该是加密的文件名。

现在,要解密文件,您只需翻转方程式即可。更改-encrypt为-decrypt,然后切换输入​​和输出文件。

第3部分-创建数字签名

最后,我们可以产生一个数字签名并进行验证。使用公钥算法直接签名大文件效率低下,因此我们应该首先计算要签名信息的摘要值。可以使用以下命令完成此操作:

openssl dgst - -out

在此示例中,您选择的是计算摘要值的算法。该是包含要散列数据的文件,而“消化”是将包含散列应用的结果的文件。

下一步是计算摘要值的签名,如下所示:

openssl pkeyutl -sign -in -out -inkey

最后,您可以像下面这样检查签名的有效性:

openssl pkeyutl -verify -sigfile -in -inkey -pubin

在这里,signature是签名的文件名,key.pem也是带有公钥的文件。为了自己确认验证,您可以计算输入文件的摘要值,并将其与从数字签名验证产生的摘要值进行比较。

第4部分-证书签名请求

假设您要创建由自己的证书颁发机构签名的数字证书。必须先生成证书签名请求或CSR,然后才能从证书颁发机构或CA获得SSL证书。CSR包括公钥以及一些在签名时插入证书中的其他信息。

首次创建CSR时,系统会要求您提供一些有关您自己或您的组织的信息。在“公用名”或CN字段中,您必须提供证书所针对的主机的标准域名。如果您实际上是从CA购买SSL证书,那么您提供的信息应该是真实且准确的!假设您要使用HTTPS保护Apache HTTP或Nginx Web服务器。您可以使用以下代码段从头开始创建新的2048位私钥以及CSR:

假设您要使用HTTPS保护Apache HTTP或Nginx Web服务器。您可以使用以下代码段从头开始创建新的2048位私钥以及CSR:

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

只需将“ domain”替换为您的域名即可。在这里,该-newkey rsa:2048选项告诉OpenSSL它应使用RSA算法来创建2048位密钥,而-nodes选项指示该密钥不应受到密码保护。

提供所有必要的信息后,将生成您的CSR。现在,您可以将其发送到CA并请求SSL证书。如果您的CA支持SHA-2,如果您希望CSR对SHA-2签名,请确保添加-sha256选项。

要为已经存在的私钥创建CSR,您将使用以下格式:

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

再次,domain用您的域名替换。-key此处的选项表示您正在使用现有的私钥,而-new表示您正在创建新的CSR。在前面的示例中,-new暗示是因为您要创建新密钥。

假设您已经拥有要续订的证书,但是您却以某种方式丢失了原始CSR。不要惊慌 您可以根据证书和私钥中的信息生成一个新证书。例如,如果您使用的是X509证书,则可以使用以下代码:

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

-x509toreq需要该选项以使OpenSSL知道证书类型。

第5部分-生成SSL证书

如果您希望获得SSL证书的额外安全性,但又负担不起或不想被CA所困扰,那么一种比较便宜的选择就是签名自己的证书。自签名证书是用自己的私钥签名的,它们在加密数据方面与CA签名证书一样有效。但是,用户可能会从其浏览器收到警告,表明连接不安全,因此实际上仅在不需要证明服务身份的环境(例如在非公共服务器上)中才建议使用自签名证书。

同样,假设您使用HTTPS保护Apache HTTP或Nginx Web服务器的安全。以下命令将创建一个2048位私有密钥以及一个自签名证书:

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

该-x509选项告诉OpenSSL您需要自签名证书,而-days 365表明该证书的有效期为一年。OpenSSL将生成一个临时CSR,以收集与证书关联的信息,因此您将必须照常回答提示。

如果您已经具有要与自签名证书关联的私钥,则只需稍微更改代码即可:

openssl req -key domain.key -new -x509 -days 365 -out domain.crt

请记住,-new由于您是根据现有密钥创建新的CSR,因此必须包含该选项。

第6部分-查看证书

要查看证书和CSR文件,您必须从PEM格式对其进行解码。使用以下命令以纯文本格式查看CSR的内容:

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

要以纯文本格式查看证书的内容,请使用:

openssl x509 -text -noout -in domain.crt

您可以通过将证书的名称插入以下代码来验证证书是否由特定的CA签名:

openssl verify -verbose -CAFile ca.crt domain.crt OpenSSL入门教程结论

在当今数字化日益发展的世界中,必须提高互联网安全性以保护我们自己的安全性。许多网站数据库包含有关访客的信息宝库,并且黑客一直在学习导航系统漏洞并利用此类数据的新方法。这就是为什么安全协议必须继续发展的原因。随时了解最新信息,以确保为用户提供足够的保护。

翻译自:https://www.keycdn.com/blog/openssl-tutorial

一大波丝袜美腿日本裤袜日美少女纷纷晒照庆祝一大波丝袜美腿日本裤袜日美少女纷纷晒照庆祝 猜你喜欢 本站最新优惠

Namesilo优惠:新用户省 $1 域名注册-优惠码:45D%UYTcxYuCloZ 国外最便宜域名!点击了解更多

特别优惠:免费赠送 $100 Vultr主机-限时优惠!英文站必备海外服务器!点击了解更多

VPS优惠:搬瓦工优惠码:BWH3OGRI2BMW 最高省5.83%打开外面世界的一款主机点击了解更多

加入电报群

【江湖人士】(jhrs.com)原创文章,作者:江小编,如若转载,请注明出处:https://jhrs.com/2020/39063.html

扫码加入电报群,让你获得国外网赚一手信息。

文章标题:OpenSSL入门教程分为6步骤



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3