2016-11-23 8 views
1

Я действительно больше сторонний разработчик, поэтому серверная конфигурация - это очень новая территория для меня, извините, если это простой вопрос!certbot-auto/letsencrypt установка одного ключа для нескольких доменов, указывающих на один и тот же сервер

У меня возникли проблемы с попыткой получить мой certbot-auto для генерации ключа SSH для нескольких доменов, указывая на один ящик.

У меня есть 3-4 доменов (domain1.net, domain2.io, domain3.me, domain4.codes), которые все указывает на то же капелькой Digital Ocean.

Раньше (пару месяцев назад), я сделал это с letsencrypt напрямую (в это время certbot). Так или иначе, я получил SSL для всех своих доменов, но они недавно истекли, и теперь я, похоже, только могу обновить domain1.net, а не остальное.

Я попробовал следующую команду:

./certbot-auto certonly -a webroot --agree-tos -w /var/www/domain1.net/public_html/ \--expand -d domain1.net,www.domain1.net,domain2.io,www.domain2.io,domain3.me,www.domain3.me,domain4.codes,www.domain4.codes 

... который, казалось, на работу, я получил следующее:

| Saving debug log to /var/log/letsencrypt/letsencrypt.log    │ 
│ Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org  │ 
│ Cert not yet due for renewal           │ 
│ Renewing an existing certificate          │ 
│ Performing the following challenges:         │ 
│ http-01 challenge for domain1.net         │ 
│ http-01 challenge for www.domain1.net        │ 
│ http-01 challenge for domain2.io          │ 
│ http-01 challenge for www.domain2.io         │ 
│ http-01 challenge for domain3.me          │ 
│ http-01 challenge for www.domain3.me         │ 
│ http-01 challenge for domain4.codes         │ 
│ http-01 challenge for www.domain4.codes        │ 
│ Using the webroot path /var/www/domain1.net/public_html for   │ 
│ all unmatched domains.            │ 
│ Waiting for verification...           │ 
│ Cleaning up challenges            │ 
│ Generating key (2048 bits):           │ 
│ /etc/letsencrypt/keys/0012_key-certbot.pem       │ 
│ Creating CSR: /etc/letsencrypt/csr/0012_csr-certbot.pem 

IMPORTANT NOTES: 
- Congratulations! Your certificate and chain have been saved at 
    /etc/letsencrypt/live/domain1.net/fullchain.pem. Your cert 
    will expire on 2017-02-20. To obtain a new or tweaked version of 
    this certificate in the future, simply run certbot-auto again. To 
    non-interactively renew *all* of your certificates, run 
    "certbot-auto renew" 
- If you like Certbot, please consider supporting our work by: 

    Donating to ISRG/Let's Encrypt: https://letsencrypt.org/donate 
    Donating to EFF:     https://eff.org/donate-le 

.. OK Great! однако только domain1.net и www.domain1.net, похоже, работают ... другие домены утверждают, что не используют HTTPS!

Я также вижу несколько файлов в каталоге /etc/letsencrypt/live/. Я попытался заставить это работать ранее (используя letencrypt напрямую, а не через certbot), и работал ли он до сегодняшнего дня, когда они истекли и отказались возобновить. это то, что я вижу в этом каталоге:

[email protected]:/opt$ sudo ls -la /etc/letsencrypt/live/ 
total 20 
drwx------ 5 root root 4096 Nov 22 18:22 . 
drwxr-xr-x 8 root root 4096 Nov 22 18:22 .. 
drwxr-xr-x 2 root root 4096 Nov 22 18:41 domain1.net 
drwxr-xr-x 2 root root 4096 Oct 16 00:00 domain1.net-0001 
drwxr-xr-x 2 root root 4096 Nov 22 18:22 www.domain1.net 

hmm .. не уверен, почему в нем есть несколько записей. не должно быть только одного?

В любом случае - я недостаточно хорошо разбираюсь в HTTPS/keys/NginX, чтобы понять это, и я разорвал свои волосы. Я просто хочу, чтобы мои SSL ключи:

  1. работает для всех вышеперечисленных областей
  2. Автоматическое обновление через certbot-авто обновляют

и точно не знаю, где я Мессинг здесь .. . Любая помощь высоко ценится!

EDIT: это то, что мой конфигурационный блок сервера выглядит в Nginx:

server { 
# listen 80 default_server; 
# listen [::]:80 default_server ipv6only=on; 


    # START LETS ENCRYPT ADDITIONS: 
    listen 443 ssl; 
    server_name domain1.net www.domain1.net domain2.io www.domain2.io domain3.me www.domain3.me domain4.codes www.domain4.codes; 
    ssl_certificate /etc/letsencrypt/live/www.domain1.net/fullchain.pem; # managed by Certbot 
    ssl_certificate_key /etc/letsencrypt/live/www.domain1.net/privkey.pem; # managed by Certbot 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 
    # /END LETS ENCRYPT ADDITION 

    root /var/www/domain1.net/public_html; 
    index index.php index.html index.htm; 

    # FOR LETSENCRYPT AUTO-RENEWAL, we must give it access to /.well-known 
    location ~ /.well-known { 
    allow all; 
    } 
    # /END LETSENCRYPT AUTO_RENEWAL 

    location/{ 
    # First attempt to serve request as file, then 
    # as directory, then fall back to displaying a 404. 
    try_files $uri $uri/ =404; 
    # Uncomment to enable naxsi on this location 
    # include /etc/nginx/naxsi.rules 
    } 

ответ

0

Просто хотел, чтобы следить за - я получил эту работу!

Оказалось, что моя команда была правильной, но я неправильно использовал флаг -d - его необходимо применять для каждого домена отдельно. Поэтому исправленная команда:

./certbot-auto certonly -a webroot --agree-tos -w /var/www/domain1.net/public_html/ \--expand -d domain1.net,www.domain1.net -d domain2.io,www.domain2.io -d domain3.me,www.domain3.me -d domain4.codes,www.domain4.codes 
+0

Отлично! Но что, если у вас более 100 доменов? Не могли бы вы по-прежнему сделать это через 1 сертификат с помощью шифрования? Я понимаю, если вы не знаете ответа. – Karem