最近、Nextcloudでクラウドを設定しました。私のドメインの証明書に正常に署名しました。https://mydomain.home.com(もちろん実際のドメインは異なります)。すべてがうまくいった。しかし、今は「www.mydomain.home.com」の証明書も持っていたいと思います。しかし、これはうまくいきません。
nc -z -v -w5 mydomain.home.com 80
レポート:
DNS fwd/rev mismatch: mydomain.home.com != host-blabla
mydomain.home.com [255.255.255.255] 80 (http) open
したがって、認証用のポート80は問題ありません。これが私のnginx設定の外観です(サイト利用可能/デフォルト)。
server {
listen 80;
server_name *.mydomain.home.com;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name *.mydomain.home.com;
ssl_certificate /etc/letsencrypt/live/mydomain.home.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.home.com/privkey.pem;
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
# add_header Strict-Transport-Security "max-age=15768000;
# includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /var/www/nextcloud/;
使った
certbot certonly --webroot -w /var/www/mydomain.home.com -d
mydomain.home.com -d www.mydomain.home.com
wwwを含む2番目のドメインを省略すると機能しますが、上記のコマンドを実行するとエラーメッセージが表示されます。
Failed authorization procedure. www.mydomain.home.com (http-01):
urn:acme:error:connection :: The server could not connect to the client
to verify the domain :: DNS problem: NXDOMAIN looking up A for
www.mydomain.home.com
なぜそんなことですか?
また、私が使用するとき
certbot renew --dry-run
私はちょうど次を得ます:
Attempting to renew cert from
/etc/letsencrypt/renewal/mydomain.home.com.conf produced an unexpected
error: Failed authorization procedure. mydomain.home.com (http-01):
urn:acme:error:connection :: The server could not connect to the client
to verify the domain :: Fetching https://*.mydomain.home.com/.well-
known/acme-challenge/GwAAZEokTN1ByCuJUGP4t61mCeuTxIDKypd4DzhcfEg: Error
getting validation data. Skipping.
答え1
暗号化するには、http
サーバーにアクセスする代わりにパススルーが必要だと思いますhttps
。ブロック.well-known
のディレクトリには例外を作成する必要がありますhttp
server
。
たとえば、
server {
listen 80;
server_name *.mydomain.home.com;
location / {
return 301 https://$server_name$request_uri;
}
location /.well-known/ {
root /path/to/directory;
}
}
server {
listen 443 ssl;
server_name *.mydomain.home.com;
ssl_certificate ...;
ssl_certificate_key ...;
...
location /.well-known/ {
root /path/to/directory;
}
}