Apache-2.4

如何安裝letsencrypt萬用字元證書?

  • March 2, 2020

我在 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

這應該工作

certbot-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'uncovery.net,*.uncovery.net'

之後不要忘記指出fullchain.pemprivkey.pem在您的 apache config ssl 設置中。通常,那些位於/etc/letsencrypt/live/uncovery.net/fullchain.pem /etc/letsencrypt/live/uncovery.net/privkey.pem

如果您不更改這些,您仍然會看到自簽名證書,這是 apache 預設的自簽名 ssl 證書。

引用自:https://serverfault.com/questions/1005233