创建自签名SSL证书
时间:2020-03-05 15:26:26 来源:igfitidea点击:
本文介绍了如何使用“ openssl”工具创建自签名SSL证书。
什么是自签名SSL证书?
自签名SSL证书是由创建它的人而不是受信任的证书颁发机构签名的证书。
自签名证书可以具有与受信任的CA签名SSL证书相同的加密级别。
Web浏览器无法将自签名证书识别为有效。
使用自签名证书时,Web浏览器会向访问者显示警告,提示无法验证该证书。
通常,自签名证书用于测试目的或者内部使用。
我们不应在暴露于Internet的生产系统中使用自签名证书。
准备工作
需要OpenSSL工具箱才能生成自签名证书。
要检查Linux系统上是否安装了“ openssl”软件包,请打开终端,输入“ openssl version”,然后按Enter。
如果安装了软件包,系统将打印OpenSSL版本,否则我们将看到类似“找不到openssl命令”的内容。
如果系统上未安装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]:theitroad Organizational Unit Name (eg, section) []:Marketing Common Name (e.g. server FQDN or YOUR name) []:theitroad.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 ='-完全限定的域名。