创建自签名SSL证书

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

什么是自签名SSL证书? #

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

Web浏览器无法将自签名证书识别为有效。 使用自签名证书时,Web浏览器会向访问者显示警告,提示无法验证该网站证书。

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

先决条件

需要OpenSSL工具箱才能生成自签名证书。

检查是否 openssl 软件包已安装在Linux系统上,打开终端,输入 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是十年。 您可以使用任何正整数。
  • -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) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:linuxize.com
Email Address []:[email protected]

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

ls
example.crt example.key

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

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

创建没有提示号的自签名SSL证书

如果您想生成自签名SSL证书而没有提示任何问题,请使用 -subj 选项并指定所有主题信息:

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安全终端

Sidebar