安卓系统

创造自我

千锋Linux教程:133 HTTPS 证书签名机制

千锋Linux教程:133 HTTPS 证书签名机制

目录:

Anonim

本文介绍了如何使用openssl工具创建自签名SSL证书。

什么是自签名SSL证书?

自签名SSL证书是由创建它的人而不是受信任的证书颁发机构签名的证书。 自签名证书可以具有与受信任的CA签名SSL证书相同的加密级别。

自签名证书被任何浏览器识别为有效。 如果您使用的是自签名证书,则Web浏览器将向访问者显示警告,提示无法验证该网站证书。

自签名证书主要用于测试目的或内部使用。 您不应在暴露于Internet的生产系统中使用自签名证书。

先决条件

需要使用openssl工具包来生成自签名证书。

要检查Linux系统上是否安装了openssl软件包,请打开终端,输入 openssl version ,然后按Enter。 如果安装了软件包,系统将打印OpenSSL版本,否则您将看到 openssl command not found

如果您的系统上未安装openssl软件包,则可以通过运行以下命令来安装它:

  • Ubuntu和Debian

    sudo apt install openssl

    Centos和Fedora

    sudo yum install openssl

创建自签名SSL证书

要创建新的自签名SSL证书,请使用 openssl req 命令:

openssl req -newkey rsa:4096 \ -x509 \ -sha256 \ -days 3650 \ -nodes \ -out example.crt \ -keyout example.key

让我们分解命令并了解每个选项的含义:

  • -newkey rsa:4096 创建一个新的证书请求和4096位RSA密钥。 默认值为2048位。 -x509 创建X.509证书。 -sha256 使用265位SHA(安全哈希算法)。 -days 3650 认证证书的天数。 3650是10年。 您可以使用任何正整数。 -nodes 创建没有密码的密钥。 -out example.crt 指定将新创建的证书写入的文件名。 您可以指定任何文件名。 -keyout example.key 指定要写入新创建的私钥的文件名。 您可以指定任何文件名。

有关 openssl req 命令选项的更多信息,请访问OpenSSL req文档页面。

按下Enter键后,命令将生成私钥,并询问您将用于生成证书的一系列问题。

Generating a RSA private key…………………………………………………………….++++……..++++ writing new private key to 'example.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. -----

输入要求的信息,然后按Enter。

Country Name (2 letter code):US State or Province Name (full name):Alabama Locality Name (eg, city):Montgomery Organization Name (eg, company):Linuxize Organizational Unit Name (eg, section):Marketing Common Name (eg server FQDN or YOUR name):linuxize.com Email Address:[email protected]

证书和私钥将在指定位置创建。 使用ls命令来验证是否已创建文件:

ls

example.crt example.key

而已! 您已经生成了一个新的自签名SSL证书。

备份新证书和外部存储密钥始终是一个好主意。

创建无提示的自签名SSL证书

openssl req -newkey rsa:4096 \ -x509 \ -sha256 \ -days 3650 \ -nodes \ -out example.crt \ -keyout example.key \ -subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"

Generating a RSA private key…………………………………………………………….++++……..++++ writing new private key to 'example.key' -----

-subj 行中指定的字段如下所示:

  • C= -国家/地区名称。 两个字母的ISO缩写。 ST= -州或省名称。 L= -地区名称。 您所在城市的名称。 O= -组织的全名。 OU= -组织单位。 CN= -完全限定的域名。

结论

在本指南中,我们向您展示了如何使用openssl工具生成自签名SSL证书。 有了证书后,您就可以配置应用程序以使用它了。

如有任何疑问,请随时发表评论。

bash安全终端