如何在CentOS 7中生成自签名证书
在本教程中,我们将学习如何在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证书。