powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Вопросы по IT / Автоматизация выдачи сертификатов при помощи letsencrypt.
50 сообщений из 50, показаны все 2 страниц
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1264722
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знакомимся с ПО https://dehydrated.io/, внимательно читаем мануал, что может и что делает.

Пример реализации.

1. создаем пользователя le
Код
1.
le:x:1001:1001::/opt/le:/bin/bash
2. Качаем

https://dehydrated.io/
Код
1.
2.
git clone https://github.com/lukas2511/dehydrated.git /opt/dehydrated/
git pull origin master
3. В домашней директории пользователя le создаём каталог letsencrypt и копируем туда дистрибутивные файлы. Соответственно, не забывать, чтобы владельцем был пользователь le
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
root@srv-adm:~# ls -la /opt/le/letsencrypt/
total 156
drwxr-xr-x 7 le         le          4096 Jun  3 01:00 .
drwxr-xr-x 4 le         le          4096 Mar 27  2018 ..
drwx------ 3 le         le          4096 Mar 22  2018 accounts
drwxr-xr-x 2 le         le          4096 Mar 22  2018 .acme-challenges
drwx------ 7 le         le          4096 May  4  2018 certs
drwx------ 7 le         le          4096 Apr 14  2018 certs_rsa
drwx------ 2 le         le          4096 Mar 22  2018 chains
-rw-r--r-- 1 root       root        4494 May  4  2018 config
-rw-r--r-- 1 root       root        4489 Mar 22  2018 config.bak_20180504
-rw-r--r-- 1 root       root        4322 Mar 22  2018 config.default
-rw-r--r-- 1 root       root        1644 Mar 22  2018 config.params.diff
-rwxr-xr-x 1 root       root       64367 Mar 22  2018 dehydrated
-rw-r--r-- 1 root       root        5661 Mar 22  2018 dehydrated.1
-rw-r--r-- 1 root       root         140 Apr 13  2018 domains.txt
-rw-r--r-- 1 root       root          73 Mar 22  2018 domains.txt.default
-rwxr-xr-x 1 avkoudinov avkoudinov  1092 Mar 22  2018 hook_regru_le.pl
-rwxr-xr-x 1 avkoudinov avkoudinov  6687 Jan 10 12:05 hook.sh
-rw-r--r-- 1 avkoudinov avkoudinov  6072 Mar 16  2018 hook.sh.default
4. Настраиваем конфиг

Ключевые моменты:
Код
1.
2.
3.
- DEHYDRATED_USER="le"
- DEHYDRATED_USER="le"
- CHALLENGETYPE="dns-01"
я использую верификацию через dns, вызывается скрипт, через api добавляет TXT запись, после проверки запись удаляется. Мой регистратор REG.RU предоставляет api к DNS. Можно и через http. Тогда скрипт создаёт временные файлы локально, происходит верификация, файлы удаляются.
Код
1.
- KEY_ALGO=secp384r1
алгоритм шифрования
Код
1.
- CONTACT_EMAIL="avkoudinov@gmail.com"
учётная запись в letsencrypt
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
root@srv-adm:/opt/le/letsencrypt# cat config
########################################################
# This is the main config file for dehydrated          #
#                                                      #
# This file is looked for in the following locations:  #
# $SCRIPTDIR/config (next to this script)              #
# /usr/local/etc/dehydrated/config                     #
# /etc/dehydrated/config                               #
# ${PWD}/config (in current working-directory)         #
#                                                      #
# Default values of this config are in comments        #
########################################################

# Which user should dehydrated run as? This will be implictly enforced when running as root
#DEHYDRATED_USER=
DEHYDRATED_USER="le"

# Which group should dehydrated run as? This will be implictly enforced when running as root
#DEHYDRATED_GROUP=
DEHYDRATED_GROUP="le"

# Resolve names to addresses of IP version only. (curl)
# supported values: 4, 6
# default: <unset>
#IP_VERSION=
IP_VERSION="4"

# Path to certificate authority (default: https://acme-v02.api.letsencrypt.org/directory)
#CA="https://acme-v02.api.letsencrypt.org/directory"

# Path to old certificate authority
# Set this value to your old CA value when upgrading from ACMEv1 to ACMEv2 under a different endpoint.
# If dehydrated detects an account-key for the old CA it will automatically reuse that key
# instead of registering a new one.
# default: https://acme-v01.api.letsencrypt.org/directory
#OLDCA="https://acme-v01.api.letsencrypt.org/directory"

# Which challenge should be used? Currently http-01 and dns-01 are supported
#CHALLENGETYPE="http-01"
CHALLENGETYPE="dns-01"

# Path to a directory containing additional config files, allowing to override
# the defaults found in the main configuration file. Additional config files
# in this directory needs to be named with a '.sh' ending.
# default: <unset>
#CONFIG_D=

# Base directory for account key, generated certificates and list of domains (default: $SCRIPTDIR -- uses config directory if undefined)
#BASEDIR=$SCRIPTDIR

# File containing the list of domains to request certificates for (default: $BASEDIR/domains.txt)
#DOMAINS_TXT="${BASEDIR}/domains.txt"

# Output directory for generated certificates
#CERTDIR="${BASEDIR}/certs"

# Directory for account keys and registration information
#ACCOUNTDIR="${BASEDIR}/accounts"

# Output directory for challenge-tokens to be served by webserver or deployed in HOOK (default: /var/www/dehydrated)
#WELLKNOWN="/var/www/dehydrated"
WELLKNOWN="/opt/le/letsencrypt/.acme-challenges"

# Default keysize for private keys (default: 4096)
#KEYSIZE="4096"

# Path to openssl config file (default: <unset> - tries to figure out system default)
#OPENSSL_CNF=

# Path to OpenSSL binary (default: "openssl")
#OPENSSL="openssl"

# Extra options passed to the curl binary (default: <unset>)
#CURL_OPTS=

# Program or function called in certain situations
#
# After generating the challenge-response, or after failed challenge (in this case altname is empty)
# Given arguments: clean_challenge|deploy_challenge altname token-filename token-content
#
# After successfully signing certificate
# Given arguments: deploy_cert domain path/to/privkey.pem path/to/cert.pem path/to/fullchain.pem
#
# BASEDIR and WELLKNOWN variables are exported and can be used in an external program
# default: <unset>
#HOOK=

# Chain clean_challenge|deploy_challenge arguments together into one hook call per certificate (default: no)
#HOOK_CHAIN="no"

# Minimum days before expiration to automatically renew certificate (default: 30)
#RENEW_DAYS="30"

# Regenerate private keys instead of just signing new certificates on renewal (default: yes)
#PRIVATE_KEY_RENEW="yes"

# Create an extra private key for rollover (default: no)
#PRIVATE_KEY_ROLLOVER="no"

# Which public key algorithm should be used? Supported: rsa, prime256v1 and secp384r1
KEY_ALGO=secp384r1

# E-mail to use during the registration (default: <unset>)
#CONTACT_EMAIL=
CONTACT_EMAIL="avkoudinov@gmail.com"

# Lockfile location, to prevent concurrent access (default: $BASEDIR/lock)
#LOCKFILE="${BASEDIR}/lock"

# Option to add CSR-flag indicating OCSP stapling to be mandatory (default: no)
#OCSP_MUST_STAPLE="no"

# Fetch OCSP responses (default: no)
#OCSP_FETCH="no"

# Issuer chain cache directory (default: $BASEDIR/chains)
#CHAINCACHE="${BASEDIR}/chains"

# Automatic cleanup (default: no)
#AUTO_CLEANUP="no"

# ACME API version (default: auto)
#API=auto
root@srv-adm:/opt/le/letsencrypt#
5. добавляем домены в файл domains.txt, для которых необходима генерация сертификатов (для домена и поддоменов, например)
Код
1.
2.
itwrks.org *.itwrks.org
privateperson.net *.privateperson.net
6. скрипт добавления записей в DNS REG.RU
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
root@srv-adm:/opt/le/letsencrypt# cat hook_regru_le.pl
#!/usr/bin/env perl
#

# cpanm Regru::API

use Regru::API;
use Data::Printer;

my ($hook_stage, $domain, $txt_challenge) = @ARGV;

if (not defined $hook_stage) {
    die "Need hook_stage.\n";
};

if (not defined $domain) {
    die "Need domain.\n";
};

if (not defined $txt_challenge) {
    die "Need txt_challenge.\n";
};

my $username = "";
my $password = "";

my $client = Regru::API->new(
    username => "$username",
    password => "$password",
);

sub addTXT {
    my $resp = $client->zone->add_txt(
        subdomain   => '_acme-challenge',
        domain_name => "$domain",
        text        => "$txt_challenge",
    );
    p $resp;
}

sub delTXT {
    my $respDel = $client->zone->remove_record(
        domains => [
            { dname => "$domain" },
        ],
        subdomain   => '_acme-challenge',
        record_type => 'TXT',
        content     => "$txt_challenge",
    );
    p $resp;
}

if ($hook_stage eq 'deploy_challenge') {
    addTXT();
} elsif ($hook_stage eq 'clean_challenge') {
    delTXT();
} else {
    die "No hook challenge.\n";
}

root@srv-adm:/opt/le/letsencrypt#
7. Скрипт, который вызывается в ходе работы программы, немного подправленный

Я добавил следующие строчки для ссвой конфигурации, у меня сертификаты копируются на шару /opt/certs и после обновления сертификаты перезапускается nginx файловера.
Код
1.
2.
3.
    cp "${KEYFILE}" "${FULLCHAINFILE}" "${CHAINFILE}" /opt/certs/"${DOMAIN}"/
    ssh -i ~/.ssh/le_ecdsa root@nginx1.itworks "systemctl reload nginx"
    ssh -i ~/.ssh/le_ecdsa root@nginx2.itworks "systemctl reload nginx"
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
root@srv-adm:/opt/le/letsencrypt# cat hook.sh
#!/usr/bin/env bash

deploy_challenge() {
    local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"

    # This hook is called once for every domain that needs to be
    # validated, including any alternative names you may have listed.
    #
    # Parameters:
    # - DOMAIN
    #   The domain name (CN or subject alternative name) being
    #   validated.
    # - TOKEN_FILENAME
    #   The name of the file containing the token to be served for HTTP
    #   validation. Should be served by your web server as
    #   /.well-known/acme-challenge/${TOKEN_FILENAME}.
    # - TOKEN_VALUE
    #   The token value that needs to be served for validation. For DNS
    #   validation, this is what you want to put in the _acme-challenge
    #   TXT record. For HTTP validation it is the value that is expected
    #   be found in the $TOKEN_FILENAME file.

    # Simple example: Use nsupdate with local named
    # printf 'server 127.0.0.1\nupdate add _acme-challenge.%s 300 IN TXT "%s"\nsend\n' "${DOMAIN}" "${TOKEN_VALUE}" | nsupdate -k /var/run/named/session.key
    /opt/le/letsencrypt/hook_regru_le.pl deploy_challenge ${DOMAIN} ${TOKEN_VALUE}
}

clean_challenge() {
    local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"

    # This hook is called after attempting to validate each domain,
    # whether or not validation was successful. Here you can delete
    # files or DNS records that are no longer needed.
    #
    # The parameters are the same as for deploy_challenge.

    # Simple example: Use nsupdate with local named
    # printf 'server 127.0.0.1\nupdate delete _acme-challenge.%s TXT "%s"\nsend\n' "${DOMAIN}" "${TOKEN_VALUE}" | nsupdate -k /var/run/named/session.key
    /opt/le/letsencrypt/hook_regru_le.pl clean_challenge ${DOMAIN} ${TOKEN_VALUE}
}

deploy_cert() {
    local DOMAIN="${1}" KEYFILE="${2}" CERTFILE="${3}" FULLCHAINFILE="${4}" CHAINFILE="${5}" TIMESTAMP="${6}"

    # This hook is called once for each certificate that has been
    # produced. Here you might, for instance, copy your new certificates
    # to service-specific locations and reload the service.
    #
    # Parameters:
    # - DOMAIN
    #   The primary domain name, i.e. the certificate common
    #   name (CN).
    # - KEYFILE
    #   The path of the file containing the private key.
    # - CERTFILE
    #   The path of the file containing the signed certificate.
    # - FULLCHAINFILE
    #   The path of the file containing the full certificate chain.
    # - CHAINFILE
    #   The path of the file containing the intermediate certificate(s).
    # - TIMESTAMP
    #   Timestamp when the specified certificate was created.

    # Simple example: Copy file to nginx config
    # cp "${KEYFILE}" "${FULLCHAINFILE}" /etc/nginx/ssl/; chown -R nginx: /etc/nginx/ssl
    # systemctl reload nginx
    cp "${KEYFILE}" "${FULLCHAINFILE}" "${CHAINFILE}" /opt/certs/"${DOMAIN}"/
    ssh -i ~/.ssh/le_ecdsa root@nginx1.itworks "systemctl reload nginx"
    ssh -i ~/.ssh/le_ecdsa root@nginx2.itworks "systemctl reload nginx"
}

unchanged_cert() {
    local DOMAIN="${1}" KEYFILE="${2}" CERTFILE="${3}" FULLCHAINFILE="${4}" CHAINFILE="${5}"

    # This hook is called once for each certificate that is still
    # valid and therefore wasn't reissued.
    #
    # Parameters:
    # - DOMAIN
    #   The primary domain name, i.e. the certificate common
    #   name (CN).
    # - KEYFILE
    #   The path of the file containing the private key.
    # - CERTFILE
    #   The path of the file containing the signed certificate.
    # - FULLCHAINFILE
    #   The path of the file containing the full certificate chain.
    # - CHAINFILE
    #   The path of the file containing the intermediate certificate(s).
    ##cp "${KEYFILE}" "${FULLCHAINFILE}" "${CHAINFILE}" /opt/certs/"${DOMAIN}"/
    ##ssh -i ~/.ssh/le_ecdsa root@nginx1.itworks "systemctl reload nginx"
    ##ssh -i ~/.ssh/le_ecdsa root@nginx2.itworks "systemctl reload nginx"
}

invalid_challenge() {
    local DOMAIN="${1}" RESPONSE="${2}"

    # This hook is called if the challenge response has failed, so domain
    # owners can be aware and act accordingly.
    #
    # Parameters:
    # - DOMAIN
    #   The primary domain name, i.e. the certificate common
    #   name (CN).
    # - RESPONSE
    #   The response that the verification server returned

    # Simple example: Send mail to root
    # printf "Subject: Validation of ${DOMAIN} failed!\n\nOh noez!" | sendmail root
}

request_failure() {
    local STATUSCODE="${1}" REASON="${2}" REQTYPE="${3}" HEADERS="${4}"

    # This hook is called when an HTTP request fails (e.g., when the ACME
    # server is busy, returns an error, etc). It will be called upon any
    # response code that does not start with '2'. Useful to alert admins
    # about problems with requests.
    #
    # Parameters:
    # - STATUSCODE
    #   The HTML status code that originated the error.
    # - REASON
    #   The specified reason for the error.
    # - REQTYPE
    #   The kind of request that was made (GET, POST...)

    # Simple example: Send mail to root
    # printf "Subject: HTTP request failed failed!\n\nA http request failed with status ${STATUSCODE}!" | sendmail root
}

generate_csr() {
    local DOMAIN="${1}" CERTDIR="${2}" ALTNAMES="${3}"

    # This hook is called before any certificate signing operation takes place.
    # It can be used to generate or fetch a certificate signing request with external
    # tools.
    # The output should be just the cerificate signing request formatted as PEM.
    #
    # Parameters:
    # - DOMAIN
    #   The primary domain as specified in domains.txt. This does not need to
    #   match with the domains in the CSR, it's basically just the directory name.
    # - CERTDIR
    #   Certificate output directory for this particular certificate. Can be used
    #   for storing additional files.
    # - ALTNAMES
    #   All domain names for the current certificate as specified in domains.txt.
    #   Again, this doesn't need to match with the CSR, it's just there for convenience.

    # Simple example: Look for pre-generated CSRs
    # if [ -e "${CERTDIR}/pre-generated.csr" ]; then
    #   cat "${CERTDIR}/pre-generated.csr"
    # fi
}

startup_hook() {
  # This hook is called before the cron command to do some initial tasks
  # (e.g. starting a webserver).

  :
}

exit_hook() {
  # This hook is called at the end of the cron command and can be used to
  # do some final (cleanup or other) tasks.

  :
}

HANDLER="$1"; shift
if [[ "${HANDLER}" =~ ^(deploy_challenge|clean_challenge|deploy_cert|unchanged_cert|invalid_challenge|request_failure|generate_csr|startup_hook|exit_hook)$ ]]; then
  "$HANDLER" "$@"
fi
root@srv-adm:/opt/le/letsencrypt#
8. Запускаем скрипт, проходит регистрация и готово к работе
Код
1.
/opt/le/letsencrypt/dehydrated --cron --hook /opt/le/letsencrypt/hook.sh
9. Добавляем в crontab и всё регулярно обнволяется само и вмешательства не требует.
Код
1.
0 1 * * * /opt/le/letsencrypt/dehydrated --cron --hook /opt/le/letsencrypt/hook.sh > /dev/null 2>&1
...
Рейтинг: 1 / 0
Нравится: Green2
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1264733
Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
[не активирован]
sql server
Flash
Windows
1C
Unity3D
Полезно.
Спасибо.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1264768
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Спасибо. Тоже гляну. Еще certbot конякула посоветовал. Я использовал вайлдкарт сертификаты, их пробление очень гемморное, через well known не работает.

Там нужно добавлять TXT Record(s) _acme-challenge c TTL 1 секунда. Мои оба провалйера допускают min TTL 1800. Приходится ждать
Цитата 
WARNING - TTL is not 1 Second. Change the TTL to 1 second. Contact your DNS provider if unsure. If you cannot set the TTL to 1 second you must wait the TTL before the the records will get updated. For example if the TTL is set to 300 you must wait 300 seconds before the records will change to be able to verify. If you update the TTL now you will have to wait the previous TTL until the new TTL shows up.
Причем и сами TXT записи не сразу видны наружи.

Думаю да забить на вайлдкарт сертификаты и обновлять просты скриптом
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1264777
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  03.06.2019, 12:00
Спасибо. Тоже гляну. Еще certbot конякула посоветовал. Я использовал вайлдкарт сертификаты, их пробление очень гемморное, через well known не работает.

Там нужно добавлять TXT Record(s) _acme-challenge c TTL 1 секунда. Мои оба провалйера допускают min TTL 1800. Приходится ждать
Цитата 
WARNING - TTL is not 1 Second. Change the TTL to 1 second. Contact your DNS provider if unsure. If you cannot set the TTL to 1 second you must wait the TTL before the the records will get updated. For example if the TTL is set to 300 you must wait 300 seconds before the records will change to be able to verify. If you update the TTL now you will have to wait the previous TTL until the new TTL shows up.
Причем и сами TXT записи не сразу видны наружи.

Думаю да забить на вайлдкарт сертификаты и обновлять просты скриптом
certbot мне не понравился тем, что тянет много зависимостей, если ставить из пакета.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1264787
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я себе wildcard выписываю

можно не только записи отправлять в DNS регистратора, но и настроить локально, тогда letsencrypt при выдаче обращается к серверу по http, проверяет, наличие служебной записи, выдаёт сертификат и не лезет в DNS

в конфиге это механизм
CHALLENGETYPE="http-01"
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#####

server {
    listen      10.11.12.13:80;
    server_name sslvpn.privateperson.net;

    location /.well-known/acme-challenge/ { alias /opt/le/letsencrypt/.acme-challenges/; }

    location / {
        default_type text/plain;
        return 200 "scheme: $scheme";
    }

    access_log  /var/log/nginx/sslvpn.log main;
    error_log   /var/log/nginx/sslvpn_err.log info;
}

#####
...
Изменено: 03.06.2019, 12:08 - basename
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265019
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename  03.06.2019, 12:07
я себе wildcard выписываю
А как? В let's энкрипт для wildcard нужно у провайдера в TXT записи что то вносить и ждать время TTL.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265180
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  03.06.2019, 13:16
basename  03.06.2019, 12:07
я себе wildcard выписываю
А как? В let's энкрипт для wildcard нужно у провайдера в TXT записи что то вносить и ждать время TTL.
Я для себя использую реализацию из стартового поста.

Данное по самостоятельно общается с letsencrypt и самостоятельно добавляет и удаляет записи в DNS регистратора (нужно, чтобы регистратор предоставлял api для автоматизации).

Ты можешь посмотреть мой сертификат здесь, например

https://www.itwrks.org/

DNS-имя=*.itwrks.org
DNS-имя=itwrks.org

Но если у тебя долго вносятся изменения в DNS, ты можешь настроить скрипт с использованием локальной директории.

То есть, ты настраиваешь апач, (в посте выше я написал конфиг для nginx)

Когда у тебя скрипт начинает работу, он общается с letsencrypt и создаёт необходимый служебный файл в этой директории, в резальтате letsencrypt приверификации обращается к этому рандомному файлу и выписывает тебе сертификат.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265188
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот описание, как сделать без DNS

https://github.com/lukas2511/dehydrated/blob/master/docs/wellknown.md
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265189
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и в файле domains.txt ты указываешь, для каких доменов выдавать
Код
1.
2.
itwrks.org *.itwrks.org
privateperson.net *.privateperson.net
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265194
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename

без dns
для let's encrypt
wildcard

?
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265202
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  03.06.2019, 13:55
basename

без dns
для let's encrypt
wildcard

?
да.

он обратится примерно так

http://example.org/.well-known/acme-challenge/m4g1C-t0k3n

m4g1C-t0k3n - вот эта рандомная хрень создаётся вместо верификации в TXT
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265204
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02

ты почитай доку, я ссылку дал
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265216
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02

letsencrypt ему просто нужно получить валидный ответ на верификацию, а куда он обращается - по фиг.

В твоём случае, если без днс, будет запрошено что-то вроде

http://nosql.org/.well-known/acme-challenge/m4g1C-t0k3nawetba3w46qb34q234
http://nosql.ru/.well-known/acme-challenge/m4g1C-t0k3nawetba3XXXXXXXq234
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265223
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename  03.06.2019, 13:57
Программизд 02

ты почитай доку, я ссылку дал
ОК. Займусь как нибудь. Круто будет если wildcard сертификаты можно будет автоматизирвоанно обновлять.

PS
Я их на свою учетку повесил в sslforfree - т.е. логин пароль, я логинюсь и там видны мои сертификаты. Это проблема для https://dehydrated.io?
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265226
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://letsencrypt.org/docs/challenge-types/

тебе нужен

HTTP-01 challenge
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265230
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename

А как получаются сии значения?

m4g1C-t0k3nawetba3w46qb34q234
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265249
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  03.06.2019, 14:01
sslforfree
не знаю, что это такое, эта штука выписывает сертификаты? но думаю что, никаких проблем.

Оно тебе просто выпишет новые сертификаты и ты можешь пользоваться хоть старыми, хоть новыми.

Ограничение могут быть только со стороны удостоверящего центра.

Но я делал пару разных интсалляций в рамках тестирования dehydrated, для одних и тех же доменов, никаких проблем с выдачей сертификатов не было.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265270
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  03.06.2019, 14:01
basename

А как получаются сии значения?

m4g1C-t0k3nawetba3w46qb34q234
это что-то вроде TXT записи.

ну dehydrated, когда го запускаешь:
- лезет в letsencrypt, говорит, хочу сертификат для домена nosql.ru, буду проходить верификацию по типу HTTP-01 challenge
- letsencrypt - ок. на тебе фигню, типа qwerwerb34525234v23v25, щас её проверю по адресу http://nosql.ru/.well-known/acme-challenge/qwerwerb34525234v23v25
- dehydrated создаёт фигню локально
- letsencrypt обращается по http http://nosql.ru/.well-known/acme-challenge/qwerwerb34525234v23v25
- если фигня есть, на тебе сертификат, качай.
- dehydrated скачивает и всё.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265276
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename

ОК
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265277
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  03.06.2019, 14:10
Программизд 02  03.06.2019, 14:01
basename

А как получаются сии значения?

m4g1C-t0k3nawetba3w46qb34q234
это что-то вроде TXT записи.

ну dehydrated, когда го запускаешь:
- лезет в letsencrypt, говорит, хочу сертификат для домена nosql.ru, буду проходить верификацию по типу HTTP-01 challenge
- letsencrypt - ок. на тебе фигню, типа qwerwerb34525234v23v25, щас её проверю по адресу http://nosql.ru/.well-known/acme-challenge/qwerwerb34525234v23v25
- dehydrated создаёт фигню локально
- letsencrypt обращается по http http://nosql.ru/.well-known/acme-challenge/qwerwerb34525234v23v25
- если фигня есть, на тебе сертификат, качай.
- dehydrated скачивает и всё.
То же самое для днс, но в случае DNS-01 challenge, создаётся не фигня локально, а временная TXT запись, которая потом удаляется.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265329
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот статья на хабре. Она устарела, но для ознакомления полезна

https://habr.com/ru/post/304174/

Я настроил где-то в ноябре 2017.

Тогда ещё letsencrypt не выдавал сертификаты wildcard, стал это делать только весной 2018.

У меня 5 доменов и мне удобно было делать именно через DNS, а не через HTTP, но нужен был скрипт, который бы умел добавлять и удалять записи в DNS регистратора. К счастью, REG.RU предоставляет api для работы с dns, правда, только для перла (на тот момент). И когда я не поленился написать скрипт, перешёл на DNS, а вначале вот таким образом, через HTTP.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265341
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename

У моих провайдеров API нету, эти черти даже TTL не дают на 1 секунду поставить:)
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265348
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  03.06.2019, 14:23
basename

У моих провайдеров API нету, эти черти даже TTL не дают на 1 секунду поставить:)
регистратор домена у тебя либо NIC.RU либо REG.RU :) в любом случае. Хотя ещё masterhost может быть.

И ты, кстати, можешь напрямую запросить доступ к панели корневого регистратора.

Но если будешь через http, то тебе dns не понадобится.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265352
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  03.06.2019, 14:27
Программизд 02  03.06.2019, 14:23
basename

У моих провайдеров API нету, эти черти даже TTL не дают на 1 секунду поставить:)
регистратор домена у тебя либо NIC.RU либо REG.RU :) в любом случае. Хотя ещё masterhost может быть.

И ты, кстати, можешь напрямую запросить доступ к панели корневого регистратора.

Но если будешь через http, то тебе dns не понадобится.
registrar: R01-RU

вот этот у тебя
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265355
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265391
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename

Ок.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265406
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02

Если что - обращайся. Попробую помочь. Несложное ПО.

И на хабре подробно расписано, как работает.

По сути там тебе скачать, создать пользователя, немного конфиг подправить, указать домены, создать директории для апача, первый раз запустить зарегистрироваться, второй раз он выпишет сертификаты и потом настроить расписани. Всё.
...
Изменено: 03.06.2019, 14:47 - basename
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265523
Фотография Гарыныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
( здесь лучше ей будет :) - ссылке от Конякулы)
1264619
https://alexey.detr.us/posts/2017/2017-03-05-letsencrypt-renewal/
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265528
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Гарыныч  03.06.2019, 15:24
( здесь лучше ей будет :) - ссылке от Конякулы)
1264619
https://alexey.detr.us/posts/2017/2017-03-05-letsencrypt-renewal/
Базя уже обосрал это решение. И да вроде его рекомендация лучше.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1265578
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  03.06.2019, 15:25
Гарыныч  03.06.2019, 15:24
( здесь лучше ей будет :) - ссылке от Конякулы)
1264619
https://alexey.detr.us/posts/2017/2017-03-05-letsencrypt-renewal/
Базя уже обосрал это решение. И да вроде его рекомендация лучше.
я не обосрал. certbot весьма популярное и широко известное решение.

Когда искал себе средство автоматизации выдачи сертификатов, сразу на него наткнулся. certbot монструозен! и при установке из репозитария тянет кучу зависимостей. Я не люблю мусорить.

Продолжил поиск и наткнулся вот на dehydrated. Ощутимо проще, требует только bash и openssl, что везде есть, никаких дополнительных установок, просто настраивается и высокая гибкость автоматизации. Сертификаты выписывает, отправляет команду Nginx перечитать, работает полностью автономно. Всё, что требуется.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1270680
bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  03.06.2019, 15:43
Когда искал себе средство автоматизации выдачи сертификатов, сразу на него наткнулся. certbot монструозен! и при установке из репозитария тянет кучу зависимостей. Я не люблю мусорить.
можно ж в докере его запускать, и пофиг что он там сеюе в свой контейнер притащил в качестве зависимостей
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1270924
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bga83  05.06.2019, 08:29
basename  03.06.2019, 15:43
Когда искал себе средство автоматизации выдачи сертификатов, сразу на него наткнулся. certbot монструозен! и при установке из репозитария тянет кучу зависимостей. Я не люблю мусорить.
можно ж в докере его запускать, и пофиг что он там сеюе в свой контейнер притащил в качестве зависимостей
можно, но для этого нужно ставить и настраивать докер. А зачем, когда есть bash, openssl и ничего не нужно устанавливать и настраивать?
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325663
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Решил сегодня поебаццо с dehydrated. Штука классная, на дебиfн ставится вообще через apt-get

apt-get install dehydrated dehydrated-apache2

Конфигурация до ужаса проста, но что то не работало, хоть ты тресни. В результате долгой еботни выяснил, что по дефолту переменная устанавливается

WELLKNOWN=/var/www/dehydrated

А вот апаче алиасик эти педорасы создают по дефолту сюда
Код
1.
2.
Alias /.well-known/acme-challenge/ /var/lib/dehydrated/acme-challenges/
<Directory /var/lib/dehydrated/acme-challenges/>
Выставил

WELLKNOWN=/var/lib/dehydrated/acme-challenges/

заработало.

Ебучие красногласики распездяи, налажают в настройках и заебешься потом искать где они налажли.

Но за наводку все равно спасибо, тем не менее dehydrated класс. Большую часть рабоыт сделано. Буду дальше разбираться.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325672
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02

Я когда через веб пробовал, вроде на такое не наталкивался. Может, конфиг обновили, да забыли поправить пример.

Либо это из пакета так ставится. Я качал архив, без установки.
...
Изменено: 25.06.2019, 18:46 - basename
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325683
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename  25.06.2019, 18:45
Либо это из пакета так ставится.
Это
Код: Apache
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
#
# Apache configuration to serve http-01 ACME challenges responses.
# This is included from the dehydrated-apache2 package, thought to be used
# with dehydrated as packaged in Debian.

<IfModule proxy_module>
    # Do not proxy ACME challenge responses
    ProxyPass /.well-known/acme-challenge/ !
</IfModule>
<IfModule !alias_module>
    # Load the alias module, if not loaded already
    Include /etc/apache2/mods-available/alias.load
    Include /etc/apache2/mods-available/alias.conf
</IfModule>
<IfModule alias_module>
    # Serve ACME challenge responses
    Alias /.well-known/acme-challenge/ /var/lib/dehydrated/acme-challenges/
</IfModule>

<Directory /var/lib/dehydrated/acme-challenges/>
    Options FollowSymlinks
    Options -Indexes
    AllowOverride None
    # Apache >= 2.3
    <IfModule mod_authz_core.c>
        Require all granted
        Order Allow,Deny
        Allow from all
    </IfModule>
    # Apache < 2.3
    <IfModule !mod_authz_core.c>
        Order Allow,Deny
        Allow from all
    </IfModule>
</Directory>
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325687
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename

1) Про хуки не совсем понял. Зачем они?
2) Как часто крон должен выполняться? Каждый день и когда настает срок он обновит? или крон ставить на раз в три месяца?
...
Изменено: 25.06.2019, 19:06 - Программизд 02
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325698
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02

Позже отвечу, сейчас с телефона, неудобно.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325940
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  25.06.2019, 18:53
basename

1) Про хуки не совсем понял. Зачем они?
2) Как часто крон должен выполняться? Каждый день и когда настает срок он обновит? или крон ставить на раз в три месяца?
1) при помощи хуков на разных стадиях работы основного скрипта ты можешь выполнять какие-то свои действия. Оригинальный пример с хуками у тебя должен быть в пакете. в нём тоже достаточно подробно написано про параметры и функции.

Я использую в следующих целях: (пункт 7 стартового поста)
- после получения сертификатов копирую их в нужное мне место
- перечитываю конфиги nginx, чтобы загрузились новые сертификаты
Код
1.
2.
3.
    cp "${KEYFILE}" "${FULLCHAINFILE}" "${CHAINFILE}" /opt/certs/"${DOMAIN}"/
    ssh -i ~/.ssh/le_ecdsa root@nginx1.itworks "systemctl reload nginx"
    ssh -i ~/.ssh/le_ecdsa root@nginx2.itworks "systemctl reload nginx"
Эта стадия называется в скрипте хуков
Код
1.
deploy_cert()
2)
У меня стоит каждый час
Код
1.
0 1 * * * /opt/le/letsencrypt/dehydrated --cron --hook /opt/le/letsencrypt/hook.sh > /dev/null 2>&1
По идее, если срок действия сертификата подходит к концу, он должен обновить в любом случае за какой-то там период времени. Но точно не знаю, не проверял этот момент.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325945
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Понятно. Т.е. если сертификатов много и истекают они в разное время то можно выполнять крон каждый день или даже час.

А хук позволит перезапукать апач толькоттогда когда сертификат действительно обновился. А если нет, то перезапуска не будет.

Так?
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325953
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
В параметрах есть переменная days. Скрипт по ней ориентируется или дату истечения из сертификата учитывает?

Вот lets encrypt 3 месяца работает. И я не хочу чтобы даже секунды сертификат истекшим не был. Мне выставить days на 88 дней. Когда сработает старый сертификат обновится? Или скажет о он еще валиден. Ничего не делаю.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325966
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  25.06.2019, 20:53
Понятно. Т.е. если сертификатов много и истекают они в разное время то можно выполнять крон каждый день или даже час.

А хук позволит перезапукать апач толькоттогда когда сертификат действительно обновился. А если нет, то перезапуска не будет.

Так?
да, если новый сертификат, он тебе его скачает и на стадии deploy, как в примере, далее копирует сертификат в нужное тебе место, к которому у тебя прописан путь в конфиге и выполняется apache reload, не restart (это перечитывает конфиг и сертификат, не останавливая сам процесс апача)
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1325986
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  25.06.2019, 20:57
В параметрах есть переменная days. Скрипт по ней ориентируется или дату истечения из сертификата учитывает?

Вот lets encrypt 3 месяца работает. И я не хочу чтобы даже секунды сертификат истекшим не был. Мне выставить days на 88 дней. Когда сработает старый сертификат обновится? Или скажет о он еще валиден. Ничего не делаю.
Этот?
Код
1.
2.
# Minimum days before expiration to automatically renew certificate (default: 30)
#RENEW_DAYS="30"
я этот параметр не трогал, но в этом и один из смыслов скрипта, обновить до истечения срока

В любом случае ты можешь поэксперементировать, выставив да для понимания несколько раз, там вроде до 10 раз можно повыписывать сертификаты за одни сутки. Потом могут прибанить
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1326005
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02

в статье на хабре говорится о тестовом СA, на котором можно поэксперементировать, чтобы не побанили

https://habr.com/ru/post/304174/
Цитата 
CA — какой удостоверяющий центр использовать. Их, как минимум два — боевой (по умолчанию) и тестовый. Дело в том, что у боевого есть разные ограничения по частоте запросов и количеству доменов. В эти ограничения легко упереться при тестировании. Поэтому я рекомендую для тестовых запусков указать тестовый центр. Он работает так же, как боевой, просто генерирует невалидные сертификаты.
Вот тестовый CA:
CA="https://acme-staging.api.letsencrypt.org/directory"
но с учётом, что статья на хабре не новая, тестовый мог и поменяться
...
Изменено: 25.06.2019, 21:14 - basename
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1326021
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename  25.06.2019, 21:08
Потом могут прибанить
Навсегда?
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1326026
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Ок. Покспериментирую. Пока не понятно на основе чего он решает обновлять ли сертификат. По этой переменной или обновляет когда уже сертификат истек. Последнее было бы неайс. Надеюсь что они ориентируются по перемееной.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1326072
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  25.06.2019, 21:19
basename  25.06.2019, 21:08
Потом могут прибанить
Навсегда?
вот документация на сайте le по ограничениям

https://letsencrypt.org/docs/rate-limits/
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1326078
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  25.06.2019, 21:21
Ок. Покспериментирую. Пока не понятно на основе чего он решает обновлять ли сертификат. По этой переменной или обновляет когда уже сертификат истек. Последнее было бы неайс. Надеюсь что они ориентируются по перемееной.
в его рабочей директории есть куча всяких служебных файлов, скорее всего, ориентируясь на этот параметр он смотрит уже выданный сертификат, который в его служебной директории, (ну это тот же, который ты можешь скопировать куда тебе надо) смотрит на дату окончания срока и запрашивает генерацию нового.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1326146
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Ну мне нужно чтобы сертификат уже обновлялся скажем за 2 до истечения. Чтобы если что то пошло не так, у меня было время отреагировать. А не так чтобы обновлялся когда истек, и новый не сработал, астраый уже не действителен.
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1326153
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
basename

Нашел

Файл /usr/local/etc/dehydrate/config можно оставить по-умолчанию, но я вместо используемого по-умолчанию и закоментированного параметра #RENEW_DAYS="30" установил RENEW_DAYS="7". Данный параметр проверяет дату устаревания сертификата. Если он менее 7 дней — то обновит сертификат, если больше — то ничего делать не будет. А так как сертификаты выдаются на 3 месяца — то неделя до истечения — вполне нормальный срок.

https://www.netss.by/?p=10
...
Рейтинг: 0 / 0
Автоматизация выдачи сертификатов при помощи letsencrypt.
    #1327674
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Разобрался, настроил.

Теперь четко, за 2 дня до итечения должен обновить, перегрузить конфиг апача и послать мне мейл об успешном обновлении. В случае ошибок пошлет мейл с уведомлением об ошибке.

Спасибо!
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Вопросы по IT / Автоматизация выдачи сертификатов при помощи letsencrypt.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]