访问带www的站点出现ERR_SSL_PROTOCOL_ERROR问题求助
域名配置问题:带www的站点无法访问(ERR_SSL_PROTOCOL_ERROR)
问题现象
访问https://www.something.com/时,浏览器提示:
此网站无法提供安全连接
www.something.com 发送了无效响应。
ERR_SSL_PROTOCOL_ERROR
不带www的https://something.com/可正常访问。
当前配置信息
Zone File 配置
; A Records * IN A server IPv4 address @ IN A server IPv4 address www IN A server IPv4 address ; AAAA Records * IN AAAA server IPv6 address @ IN AAAA server IPv6 address www IN AAAA server IPv6 address
Apache SSL 配置文件(.cnf)
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName something.com SSLEngine on ServerAdmin mail@gmail.com DocumentRoot /var/www/app/public <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/app/public/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/errorSSL.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/accessSSL.log combined Include /etc/letsencrypt/options-ssl-apache.conf ServerAlias www.app.com SSLCertificateFile /etc/letsencrypt/live/app.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/app.com/privkey.pem </VirtualHost> </IfModule>
已尝试的无效操作
- 创建带www的.cnf文件并启用站点
- 在服务器hosts中添加www.something.com
- 在apache2.cnf中配置www到非www的重定向
问题根源及修复步骤
1. ServerAlias 配置错误
你的ServerAlias写的是www.app.com,但实际需要匹配的是www.something.com,这会导致Apache无法将www.something.com的请求关联到当前虚拟主机,最终使用默认SSL配置响应,引发协议错误。
2. SSL证书不匹配
证书路径指向/etc/letsencrypt/live/app.com/,但你的域名是something.com,证书必须同时包含something.com和www.something.com两个域名(SAN证书或通配符证书),否则即使修正ServerAlias,也会出现证书不匹配问题。
具体修复操作
修正ServerAlias:
将配置中的ServerAlias www.app.com改为ServerAlias www.something.com确认并更新SSL证书:
- 检查当前证书覆盖的域名:
openssl x509 -in /etc/letsencrypt/live/app.com/fullchain.pem -text -noout | grep DNS - 如果证书不包含
www.something.com,重新申请包含双域名的证书:certbot certonly --apache -d something.com -d www.something.com - 将配置中的
SSLCertificateFile和SSLCertificateKeyFile路径改为新证书路径(通常为/etc/letsencrypt/live/something.com/)
- 检查当前证书覆盖的域名:
验证配置并重启Apache:
- 检查配置语法:
apache2ctl configtest(Debian/Ubuntu)或httpd -t(CentOS/RHEL) - 重启服务:
systemctl restart apache2(Debian/Ubuntu)或service httpd restart(CentOS/RHEL)
- 检查配置语法:
内容的提问来源于stack exchange,提问作者Sergiu Adrian
相关产品推荐
相关产品推荐

