95592
### 目的

`xxxx.xxx` ドメインを `example.com` ドメインへ変更。

### 経緯

サブドメインのNginx設定ファイル件数が多かったので、 `/etc/nginx/conf.d` ディレクトリ以下のファイル名とファイル内の
`xxxx.xxx` 文字列を `example.com` へ一括置換しました。

その後、Nginx再起動しようとしたら、下記エラーメッセージが発生しました。

### 質問

Q1.  
エラー原因は、取得していない `hoge.example.com` が存在しないからだと思われますが、具体的にはこれからどうすればよいですか？

すべての設定ファイルを一旦全部削除後、一から構築しなおせばうまくいくと思われるのですが、既存(以前のドメイン
`xxxx.xxx`)の設定ファイル(`a.xxxx.xx.conf`、`b.xxxx.xx.conf`)を活かすにはどうすればよいですか？

Q2. `/etc/nginx/conf.d`
ディレクトリ以下の各confファイルに、Certbotが自動追加した行があるのですが、`/etc/nginx/conf.d`
ディレクトリ以下のconfファイルで `# managed by Certbot` が記載されている行を一括削除する方法はありますか？

```

    # cat hoge.example.com.conf 
    server {
    
    //中略
    
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/hoge.example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/hoge.example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    }
    
    
    server {
        if ($host = hoge.example.com) {
            return 301 https://$host$request_uri;
        } # managed by Certbot
    
        listen       80;
        server_name  hoge.example.com;
        return 404; # managed by Certbot
    
    }[
    
```

**エラーメッセージ:**

```

    nginx: [emerg] cannot load certificate
    "/etc/letsencrypt/live/hoge.example.com/fullchain.pem": BIO_new_file()
    failed (SSL: error:02001002:system library:fopen:No such file or
    directory:fopen('/etc/letsencrypt/live/hoge.example.com/fullchain.pem','r')
    error:2006D080:BIO routines:BIO_new_file:no such file) nginx:
    configuration file /etc/nginx/nginx.conf test failed
    
```
CC BY-SA 4.0
2023-07-13T11:00:49.137
95591
2023-07-13T11:48:53.310
2023-07-13T11:43:58.637
3060
7886
question
nginx letsencrypt
ドメイン変更に伴い、設定ファイルを一括置換した上でNginxを再起動しようとしたら、 Let's EncryptのSSL証明書エラーが発生
エラーメッセージをよく読みましょう。以下のファイルが存在しないと言っています。

>
```

>     /etc/letsencrypt/live/hoge.example.com/fullchain.pem
>  
```

通常は以下のディレクトリに `*.pem` ファイルが格納されています。  
`xxx.xxx` から `example.com` に変えたなら、ここも確認してください。

```

    /etc/letsencrypt/live/$DOMAIN
    
```

なお、上記の `live` ディレクトリ配下のファイルは、実際には以下の `archive`
ディレクトリ配下に保存されたファイルへのシンボリックリンクになっている点は注意が必要です。

```

    /etc/letsencrypt/archive/$DOMAIN
    
```
CC BY-SA 4.0
2023-07-13T11:48:53.310
95592
2023-07-13T11:48:53.310
3060
95591
answer