我在 CentOS 7 上使用 EPEL 存储库中的 certbot/letsencrypt 和 apache,而“正常”域名没有任何问题。certbot 工具可以很好地识别虚拟主机配置文件中的服务器名称别名。续订也可以正常工作。
例如,虚拟主机配置中的一行,例如:
ServerName uncovery.net
ServerAlias www.uncovery.net
导致 certbot 让我安装/维护域名
1: uncovery.net
2: www.uncovery.net
但是,我的虚拟主机配置中的这一行:
ServerName uncovery.net
ServerAlias *.uncovery.net
只显示
1: uncovery.net
运行 certbot 时。
所以我尝试了以下方法:
# certbot -d *.uncovery.net
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. You may need to use an authenticator plugin that can do challenges over DNS.
我尝试了 apache/webroot/standalone 身份验证器,都失败了。调试日志指出
ConfigurationError: *.uncovery.net contains an invalid character. Valid characters are A-Z, a-z, 0-9, ., and -.
所以问题:
1)如何让certbot的命令行界面识别*.wildcard?
2)如果这不起作用,我该如何手动配置证书?
这是我的 certbot 版本:
Package certbot-1.0.0-1.el7.noarch already installed and latest version
Package python2-certbot-apache-1.0.0-1.el7.noarch already installed and latest version
这应该工作
之后不要忘记指出
fullchain.pem
并privkey.pem
在您的 apache config ssl 设置中。通常,那些位于/etc/letsencrypt/live/uncovery.net/fullchain.pem
/etc/letsencrypt/live/uncovery.net/privkey.pem
如果您不更改这些,您仍然会看到自签名证书,这是 apache 默认的自签名 ssl 证书。