如何在CentOS 7中生成自签名证书

时间:2020-07-27 12:58:57  来源:igfitidea点击:

在本教程中,我们将学习如何在Centos 7中生成自签名的SSL/TLS证书。
我们使用OpenSSL命令创建自签名证书,然后我们继续配置Apache Httpd Web服务器以应用SSL/TLS证书。

准备工作

我们需要在CentOS 7服务器上安装Apache Httpd Server以及Mod_ssl软件包。
如果已尚未安装Apache Httpd服务器,请按照以下URL中给出的说明进行安装:

如何在CentOS 7上安装Apache

安装mod_ssl apache httpd扩展模块以支持TLS/SSL

Apache服务器需要安装Mod_ssl扩展模块以激活SSL支持。
在CentOS 7中,我们可以使用yum命令安装mod_ssl模块:

yum install mod_ssl
systemctl restart httpd

请注意,Mod_ssl软件包将自动为我们可以在/var/www/html文件夹下找到的默认启用HTTPS。
默认的SSL配置文件是/etc/httpd/conf.d/ssl.conf。

在Apache Web服务器上安装上CentOS 7上的自签名证书的步骤:

  • 使用openssl命令生成新的SSL/TLS(已签名)证书。
  • 使用自签名证书配置虚拟主机以使用HTTPS。

使用openssl命令生成新的SSL/TLS(签名)证书

我们现在准备开始创建服务器证书。
在CentOS 7中,我们可以使用openssl命令创建新证书。
例如,openssl命令后将创建一个有效365天的证书:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/example.com.key -out /etc/pki/tls/certs/example.com.crt

运行openssl命令后,系统会提示我们输入要生成证书的信息。
除了常见名称,我们将返回答案空白到这些问题。

常用名称值应反映我们的域名。
例如,如果要在www.example.com上使用此证书,那么如果要创建可以应用于所有子域的通配符证书,则应使用此证书,则应创建通配符证书,然后使用* .example.com 。

openssl命令将创建:

  • 私钥:私钥,example.com.key将保存到/etc/pki/tls/private /目录(我们不应该与任何人共享私钥)。
  • 证书:example.com.crt将保存到/etc/pki/tls/certs/directory(这是签名证书)。

配置虚拟主机以使用自签名证书使用HTTPS

我们需要将<VirtualHost>块与SSLENGINE上的指令以及证书配置配置。
以下是www.example.com的基于名称的虚拟主机的示例:

<VirtualHost *:443>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com
    ErrorLog "logs/example.com-error_log"
    CustomLog "logs/example.com-access_log" combined
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/example.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
</VirtualHost>

我们应该在/etc/httpd/conf.d目录下创建一个新的虚拟主机配置文件(例如example.com-ssl.conf)。

生成自签名证书是为添加TLS加密的最简单方法。
自签名证书适用于测试和内部使用。
但是,对于公众访问,请使用众所周知的CA证书。

Letsencrypt是这样的证书颁发机构,我们可以使用 Let's Encrypt提供免费的SSL证书。