在互联网安全日益重要的今天,为网站启用HTTPS协议已成为基本要求,即使是在本地开发或测试环境中,配置HTTPS也能帮助开发者更好地模拟线上环境,提前发现潜在问题,本文将详细介绍如何在CentOS系统上为本地网站配置HTTPS支持,使用自签名证书实现加密连接。
自签名证书虽未被公共证书颁发机构(CA)认可,但适用于本地测试环境,其加密功能与正式证书无异,只是浏览器会提示安全风险,手动确认后即可继续访问。

确保系统已安装OpenSSL工具包,OpenSSL是生成证书和密钥的核心工具,通常CentOS系统会默认安装,可通过以下命令检查:
openssl version
若未安装,可使用yum命令安装:
yum install openssl -y
需要生成自签名证书,整个过程分为两个步骤:创建私钥和生成证书签名请求(CSR),然后通过私钥自签名证书。
在终端中执行以下命令生成私钥:
openssl genrsa -out localhost.key 2048
此命令将生成一个2048位的RSA私钥,保存在localhost.key文件中,私钥是安全的核心,必须妥善保管,切勿泄露。
使用私钥生成证书签名请求:

openssl req -new -key localhost.key -out localhost.csr
执行此命令后,系统会提示输入一些信息,包括国家、地区、组织名称等,这些信息可根据实际情况填写,但注意Common Name应填写本地域名,如localhost或127.0.0.1。
通过以下命令生成自签名证书:
openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt
此命令将生成有效期为365天的证书文件localhost.crt。
证书和密钥已准备就绪,接下来需要配置Web服务器以使用这些文件,以Apache为例,首先确保系统已安装Apache并启用了SSL模块:
yum install httpd mod_ssl -y
找到Apache的SSL配置文件,通常位于/etc/httpd/conf.d/ssl.conf,使用文本编辑器打开该文件,找到
SSLCertificateFile /path/to/localhost.crt SSLCertificateKeyFile /path/to/localhost.key
将路径替换为实际存放证书和密钥的路径。

保存文件后,重启Apache服务使配置生效:
systemctl restart httpd
为了确保防火墙允许HTTPS流量,还需开放443端口:
firewall-cmd --permanent --add-service=https firewall-cmd --reload
可通过浏览器访问https://localhost测试配置,由于使用的是自签名证书,浏览器会显示安全警告,选择继续访问即可看到页面内容。
若需在本地使用自定义域名,可编辑/etc/hosts文件,将127.0.0.1指向特定域名。
0.0.1 mytestsite.local
此后即可通过https://mytestsite.local访问本地站点。
在整个过程中,可能会遇到一些常见问题,证书权限不当可能导致服务器无法读取文件,建议将证书和密钥文件的权限设置为仅root用户可读:
chmod 600 localhost.crt localhost.key
若Apache配置错误,可通过查看错误日志排查问题:
tail -f /var/log/httpd/error_log
对于需要在生产环境使用HTTPS的网站,建议申请受信任的证书颁发机构签发的证书,如Let's Encrypt提供的免费证书,但对于本地开发和测试,自签名证书无疑是既经济又安全的选择。
通过以上步骤,CentOS系统上的本地HTTPS配置就已完成,这不仅提升了开发环境的安全性,还能帮助开发者更好地理解和掌握HTTPS工作原理,在互联网安全越来越受重视的当下,尽早适应HTTPS环境对网站站长和开发者都大有裨益。
