CentOS7生成SSL证书全攻略
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
本文提供了在 CentOS 7 系统上生成 SSL 证书的详细步骤,安装 OpenSSL 工具并配置生成证书所需的信息,使用 OpenSSL 命令创建私钥和自签名证书,对于生产环境,推荐申请受信任的 CA 证书,介绍了如何配置 Apache 或 Nginx 服务器以使用生成的 SSL 证书,并确保网站通过 HTTPS 安全访问,整个过程涵盖了从准备到部署的所有关键步骤,帮助用户顺利完成 SSL 证书的设置。
在当今数字化时代,网络安全至关重要,无论是个人网站还是企业级应用,使用 SSL/TLS 证书来加密传输数据都是必不可少的,本文将详细介绍如何在 CentOS 7 系统上生成自签名 SSL 证书以及如何通过 Let's Encrypt 获取免费的 SSL 证书。
sudo yum update -y sudo yum install -y epel-release sudo yum install -y wget openssl mod_ssl
还需确保您的 Web 服务器(如 Apache 或 Nginx)已正确配置并运行,如果您尚未配置 Web 服务器,请参考相关文档进行设置。
生成自签名 SSL 证书
自签名 SSL 证书主要用于测试目的或内部网络使用,尽管它们不能被浏览器自动信任,但在开发环境中非常有用,以下是生成自签名 SSL 证书的步骤:
创建证书目录
创建一个专用目录来存放证书文件,通常建议将其放置在 /etc/pki/tls/certs
和 /etc/pki/tls/private
中:
sudo mkdir -p /etc/pki/tls/certs/{certs,private}
生成私钥
使用 OpenSSL 工具生成一个 2048 位的 RSA 私钥:
sudo openssl genrsa -out /etc/pki/tls/private/server.key 2048
创建证书请求文件
创建一个证书请求文件(CSR),这个文件包含了服务器的身份信息,并且会被提交给证书颁发机构(CA)以获取正式的证书:
sudo openssl req -new -key /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.csr
在执行此命令时,您需要填写一些基本信息,例如国家代码、组织名称等,这些信息将出现在生成的证书中。
签署证书请求
使用刚刚生成的私钥和证书请求文件来签署证书,由于我们是在本地环境中工作,这里将直接使用该私钥来签署 CSR:
sudo openssl x509 -req -days 365 -in /etc/pki/tls/certs/server.csr -signkey /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.crt
此命令会生成一个有效期为一年的自签名证书。
配置 Web 服务器以使用新证书
根据所使用的 Web 服务器类型(Apache 或 Nginx),编辑相应的配置文件以引用新的证书和密钥文件,在 Apache 中,您可能需要修改 /etc/httpd/conf.d/ssl.conf
文件:
SSLEngine on SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/private/server.key
完成后,重启 Web 服务器以使更改生效。
通过 Let's Encrypt 获取免费 SSL 证书
Let's Encrypt 是一个提供免费 SSL 证书的服务提供商,它支持自动化部署,并且可以轻松地集成到现有网站中,以下是获取 Let's Encrypt SSL 证书的步骤:
安装 Certbot
Certbot 是 Let's Encrypt 的官方客户端,负责与 Let's Encrypt API 进行通信并管理证书生命周期,要安装 Certbot,请运行以下命令:
sudo yum install -y certbot python2-certbot-apache
如果您使用的是 Nginx,则应选择 python2-certbot-nginx
而不是 python2-certbot-apache
。
获取证书
使用 Certbot 获取并安装 SSL 证书,对于 Apache,这一步骤非常简单:
sudo certbot --apache
这将引导您完成整个过程,包括验证域名所有权、下载证书以及更新 Apache 配置文件以启用 HTTPS。
自动续订
Let's Encrypt 证书的有效期为 90 天,因此需要定期续订,Certbot 可以帮助我们自动化这一过程,您可以通过 crontab 设置每日任务来检查即将过期的证书,并在必要时重新获取它们。
sudo crontab -e
添加以下行以每晚午夜检查一次证书:
0 0 * * * /usr/bin/certbot renew --quiet
此命令会在发现任何即将过期的证书时自动更新它们。
本文介绍了如何在 CentOS 7 上生成自签名 SSL 证书以及如何利用 Let's Encrypt 获取免费的 SSL 证书,无论您是出于测试目的还是为了保护生产环境中的网站,掌握这些技能都是非常有价值的,希望本文能够帮助您顺利完成 SSL 证书的配置工作!