前言
在私有云平台中,将HTTP协议升级为HTTPS是提升安全性的重要步骤。本文以OpenStack私有云为例,详细讲解如何通过配置Apache、SSL证书及Horizon参数,实现HTTPS强制访问,保障数据传输安全。
环境准备
-
系统:CentOS 7
-
角色:OpenStack控制节点(controller)
-
目标:启用HTTPS访问Dashboard(Horizon)
完整操作流程
1. 配置本地YUM仓库(可选)
若服务器无法访问互联网,需提前准备包含所需软件包的本地仓库:
# 创建本地仓库目录
mkdir -p /root/https-repo
# 编写本地仓库配置文件
cat <<EOF > /etc/yum.repos.d/https-repo
[https]
name=https
baseurl=file:///root/https-repo
gpgcheck=0
enabled=1
EOF
注:需将软件包(如httpd、mod_ssl等)提前放入
/root/https-repo
目录。
2. 安装必要组件
安装Apache、SSL模块及依赖:
# 安装核心组件
yum install httpd mod_wsgi mod_ssl -y
# 若遇到版本冲突,降级httpd(按需执行)
yum downgrade httpd-tools-2.4.6-93.el7.centos.x86_64 httpd-2.4.6-93.el7.centos.x86_64 -y
3. 配置SSL证书
生成或获取SSL证书(以自签名证书为例):
# 生成证书(测试环境使用)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/horizon.key \
-out /etc/pki/tls/certs/horizon.crt
生产环境建议:使用受信任的CA机构颁发的证书。
4. 配置Apache SSL虚拟主机
修改/etc/httpd/conf.d/ssl.conf
,指定证书路径:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/horizon.crt
SSLCertificateKeyFile /etc/pki/tls/private/horizon.key
# 其他配置保持不变...
</VirtualHost>
5. 修改Horizon安全配置
编辑/etc/openstack-dashboard/local_settings
,启用HTTPS相关参数:
# 启用HTTPS
USE_SSL = True
# 强制安全Cookie
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_HTTPONLY = True
# 可选:设置HTTP严格传输安全(HSTS)
SECURE_HSTS_SECONDS = 31536000 # 1年
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
6. 重启服务并验证
# 重启Apache和依赖服务
systemctl restart httpd memcached
# 检查443端口监听状态
netstat -ntpl | grep 443
# 预期输出:tcp6 0 0 :::443 :::* LISTEN 32328/httpd
7. 防火墙配置(若启用)
# 开放443端口
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
验证HTTPS访问
-
浏览器访问:
https://<controller-ip>/dashboard
-
检查地址栏是否显示安全锁标志。
-
使用
curl -I https://<controller-ip>/dashboard
验证响应头。
常见问题排查
-
证书错误:确保证书路径正确,权限为
644
。 -
服务未启动:检查
systemctl status httpd
,查看日志journalctl -xe
。 -
SELinux拦截:临时禁用
setenforce 0
或调整策略:setsebool -P httpd_can_network_connect on
结语
通过以上步骤,OpenStack私有云平台的Dashboard已成功启用HTTPS加密访问。此配置不仅提升安全性,还满足企业合规要求。生产环境中建议使用正式SSL证书,并定期更新密钥。