我有 3 个 wordpress 网站、1 个 moodle 网站和 1 个 owncloud 网站,它们在我的 vps 中都具有相同的 apache 配置,并且它们都运行良好
但我无法让 phpMyAdmin 与 cloudflare 的原始证书一起工作。当我转到 mysql.domain.tld 时,它返回:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
但如果我使用 Let's Encrypt,它就可以正常工作
我对我的所有网站都使用以下 apache 配置文件:
<VirtualHost *:80>
ServerName domain.tld
DocumentRoot "/var/www/domain.tld/"
<Directory "/var/www/domain.tld/">
AllowOverride All
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =domain.tld
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
ErrorLog /var/log/apache2/domain.tld/error.log
</VirtualHost>
<VirtualHost *:443>
ServerName domain.tld
DocumentRoot "/var/www/domain.tld/"
<Directory "/var/www/domain.tld/">
AllowOverride All
</Directory>
SSLCertificateFile /etc/apache2/certificates/domain.tld.crt
SSLCertificateKeyFile /etc/apache2/certificates/domain.tld.key
ErrorLog /var/log/apache2/domain.tld/error.log
</VirtualHost>
我做错了什么?谢谢
答案1
检查您是否可以读取证书:
openssl x509 -noout -text -in /etc/apache2/certificates/domain.tld.crt
检查私钥:
openssl rsa -in /etc/apache2/certificates/domain.tld.key -check
验证私钥和证书是否匹配:
openssl rsa -noout -modulus -in /etc/apache2/certificates/domain.tld.key | openssl sha256
openssl x509 -noout -modulus -in /etc/apache2/certificates/domain.tld.crt | openssl sha256
确保 /etc/apache2/certificates/domain.tld.crt 按以下顺序包含:
- domain.tld 的证书
- CloudFlare 的所有中级证书