메일송신 mailJS , 영/한 전환 적용ㅁ

This commit is contained in:
Wind
2026-02-15 11:12:43 +09:00
parent 6e9a7ed81b
commit a0a212e41c
43 changed files with 6713 additions and 536 deletions

View File

@@ -0,0 +1,409 @@
2026-02-15 01:53:21,924:DEBUG:certbot._internal.main:certbot version: 5.3.0
2026-02-15 01:53:21,925:DEBUG:certbot._internal.main:Location of certbot entry point: /opt/certbot/bin/certbot
2026-02-15 01:53:21,925:DEBUG:certbot._internal.main:Arguments: ['--config', '/etc/letsencrypt.ini', '--work-dir', '/tmp/letsencrypt-lib', '--logs-dir', '/data/logs', '--cert-name', 'npm-7', '--agree-tos', '--authenticator', 'webroot', '-m', 'windpacer@hanmocnn.co.kr', '--preferred-challenges', 'http', '--domains', 'git.hanmocnn.co.kr']
2026-02-15 01:53:21,925:DEBUG:certbot._internal.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#manual,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2026-02-15 01:53:21,939:DEBUG:certbot._internal.log:Root logging level set at 30
2026-02-15 01:53:21,940:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2026-02-15 01:53:21,940:DEBUG:certbot._internal.plugins.selection:Single candidate plugin: * webroot
Description: Saves the necessary validation files to a .well-known/acme-challenge/ directory within the nominated webroot path. A separate HTTP server must be running and serving files from the webroot path. HTTP challenge only (wildcards not supported).
Interfaces: Authenticator, Plugin
Entry point: EntryPoint(name='webroot', value='certbot._internal.plugins.webroot:Authenticator', group='certbot.plugins')
Initialized: <certbot._internal.plugins.webroot.Authenticator object at 0xffff93ff0390>
Prep: True
2026-02-15 01:53:21,941:DEBUG:certbot._internal.plugins.selection:Selected authenticator <certbot._internal.plugins.webroot.Authenticator object at 0xffff93ff0390> and installer None
2026-02-15 01:53:21,941:INFO:certbot._internal.plugins.selection:Plugins selected: Authenticator webroot, Installer None
2026-02-15 01:53:22,173:DEBUG:certbot._internal.main:Picked account: <Account(RegistrationResource(body=Registration(key=None, contact=(), agreement=None, status=None, terms_of_service_agreed=None, only_return_existing=None, external_account_binding=None), uri='https://acme-v02.api.letsencrypt.org/acme/acct/3064386906', new_authzr_uri=None, terms_of_service=None), ce2ddac5740bb12d4d6591b7fa1728af, Meta(creation_dt=datetime.datetime(2026, 2, 14, 22, 37, tzinfo=datetime.timezone.utc), creation_host='312f7928d5ba', register_to_eff=None))>
2026-02-15 01:53:22,174:DEBUG:acme.client:Sending GET request to https://acme-v02.api.letsencrypt.org/directory.
2026-02-15 01:53:22,177:DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org:443
2026-02-15 01:53:22,749:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "GET /directory HTTP/1.1" 200 1033
2026-02-15 01:53:22,750:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Sun, 15 Feb 2026 01:53:22 GMT
Content-Type: application/json
Content-Length: 1033
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"keyChange": "https://acme-v02.api.letsencrypt.org/acme/key-change",
"meta": {
"caaIdentities": [
"letsencrypt.org"
],
"profiles": {
"classic": "https://letsencrypt.org/docs/profiles#classic",
"shortlived": "https://letsencrypt.org/docs/profiles#shortlived",
"tlsclient": "https://letsencrypt.org/docs/profiles#tlsclient",
"tlsserver": "https://letsencrypt.org/docs/profiles#tlsserver"
},
"termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.6-August-18-2025.pdf",
"website": "https://letsencrypt.org"
},
"newAccount": "https://acme-v02.api.letsencrypt.org/acme/new-acct",
"newNonce": "https://acme-v02.api.letsencrypt.org/acme/new-nonce",
"newOrder": "https://acme-v02.api.letsencrypt.org/acme/new-order",
"qw5aGjGdqUs": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417",
"renewalInfo": "https://acme-v02.api.letsencrypt.org/acme/renewal-info",
"revokeCert": "https://acme-v02.api.letsencrypt.org/acme/revoke-cert"
}
2026-02-15 01:53:22,751:DEBUG:certbot._internal.display.obj:Notifying user: Requesting a certificate for git.hanmocnn.co.kr
2026-02-15 01:53:22,755:DEBUG:acme.client:Requesting fresh nonce
2026-02-15 01:53:22,756:DEBUG:acme.client:Sending HEAD request to https://acme-v02.api.letsencrypt.org/acme/new-nonce.
2026-02-15 01:53:22,931:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "HEAD /acme/new-nonce HTTP/1.1" 200 0
2026-02-15 01:53:22,931:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Sun, 15 Feb 2026 01:53:22 GMT
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: qLPTsdtf371F2dHjmpzxyQJyT53Irn_ns9AHyC1ZS59P7cma1yM
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
2026-02-15 01:53:22,932:DEBUG:acme.client:Storing nonce: qLPTsdtf371F2dHjmpzxyQJyT53Irn_ns9AHyC1ZS59P7cma1yM
2026-02-15 01:53:22,932:DEBUG:acme.client:JWS payload:
b'{\n "identifiers": [\n {\n "type": "dns",\n "value": "git.hanmocnn.co.kr"\n }\n ]\n}'
2026-02-15 01:53:22,938:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/new-order:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMzA2NDM4NjkwNiIsICJub25jZSI6ICJxTFBUc2R0ZjM3MUYyZEhqbXB6eHlRSnlUNTNJcm5fbnM5QUh5QzFaUzU5UDdjbWExeU0iLCAidXJsIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1vcmRlciJ9",
"signature": "WyHKdWrWbQ3LclhqvkOiUGsvL-CRTBoVdK5ZhXGtBeDbrprDu_5gAF-rZmoTaxKICx7JLIJmM6x5eGmUqtQPRkz-pdGzbKVYOH8tNRZmS_UlP4Xme44N2b8XsV1LfEREEi4gE7Xoltvv1WZVTa5pH2OMAV0W2qivo_rw2pvjJcAUBvbJ-LjWw8bwWgZA-V9D8y1QCNnnnygWv7MzYlqyqQdFdoFtLR_jULsyPkLr0_O1VYQ63kfGQvlu7LcIx6CigQytrQe6xjCQMfagSFHTbCUomU95CAsGkKCGG8zdcY5gxAGq9aUtCDh1ckj1i7JlxT7VG8Gw94Fm1-3xyoIvVg",
"payload": "ewogICJpZGVudGlmaWVycyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAiZG5zIiwKICAgICAgInZhbHVlIjogImdpdC5oYW5tb2Nubi5jby5rciIKICAgIH0KICBdCn0"
}
2026-02-15 01:53:23,207:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/new-order HTTP/1.1" 201 350
2026-02-15 01:53:23,208:DEBUG:acme.client:Received response:
HTTP 201
Server: nginx
Date: Sun, 15 Feb 2026 01:53:23 GMT
Content-Type: application/json
Content-Length: 350
Connection: keep-alive
Boulder-Requester: 3064386906
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Location: https://acme-v02.api.letsencrypt.org/acme/order/3064386906/480409206716
Replay-Nonce: QkEzerAfewKqCm7D8TxtCV9igelQqU_6LxnLw93BuTLlqGVqyto
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"status": "ready",
"expires": "2026-02-22T01:53:23Z",
"identifiers": [
{
"type": "dns",
"value": "git.hanmocnn.co.kr"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz/3064386906/658839462036"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/3064386906/480409206716"
}
2026-02-15 01:53:23,208:DEBUG:acme.client:Storing nonce: QkEzerAfewKqCm7D8TxtCV9igelQqU_6LxnLw93BuTLlqGVqyto
2026-02-15 01:53:23,208:DEBUG:acme.client:JWS payload:
b''
2026-02-15 01:53:23,213:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/authz/3064386906/658839462036:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMzA2NDM4NjkwNiIsICJub25jZSI6ICJRa0V6ZXJBZmV3S3FDbTdEOFR4dENWOWlnZWxRcVVfNkx4bkx3OTNCdVRMbHFHVnF5dG8iLCAidXJsIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2F1dGh6LzMwNjQzODY5MDYvNjU4ODM5NDYyMDM2In0",
"signature": "aRcOzVryk7N-epoq94qMQaMnoZRc7CwSkyd9ho6LopgW7DQ9gEmTr8Wz_tImoO_K94ggGlP4u9A77STJT3qzgT7WfBRV_fbtX65jr721Gczj7p-uqUQZXgc0trtw86vR47hXaEHgiNAwcO3XfgsP_V2uTr6h3M2vDw_89Aogg7YRVJruSAIK4sOkUbAOV0JjtxMwPO8ks-tnfpJQ0w-XW-wJ7B9ipQG9h9vWDZAvK2MOgZOoqJVQjUy1_urnkpXXmE-083hikkbzsyLXXAa-P5GcW6KgHV-frj0ejgQVJMLjh6U4YmyH-7HImx7kCQD_rtQ6qQSVgC6Q4SUNBx7hGA",
"payload": ""
}
2026-02-15 01:53:23,391:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/authz/3064386906/658839462036 HTTP/1.1" 200 777
2026-02-15 01:53:23,392:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Sun, 15 Feb 2026 01:53:23 GMT
Content-Type: application/json
Content-Length: 777
Connection: keep-alive
Boulder-Requester: 3064386906
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: QkEzerAfRd3ApU9wqlGKFrr8ynXUod788KPNiE_LCow1T_uNR3k
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"identifier": {
"type": "dns",
"value": "git.hanmocnn.co.kr"
},
"status": "valid",
"expires": "2026-03-17T01:51:57Z",
"challenges": [
{
"type": "http-01",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall/3064386906/658839462036/WBcYRQ",
"status": "valid",
"validated": "2026-02-15T01:51:51Z",
"token": "lYADYtOgtUUXj8WVH2qa0AW6RT8-qr577RV-yS7nYY0",
"validationRecord": [
{
"url": "http://git.hanmocnn.co.kr/.well-known/acme-challenge/lYADYtOgtUUXj8WVH2qa0AW6RT8-qr577RV-yS7nYY0",
"hostname": "git.hanmocnn.co.kr",
"port": "80",
"addressesResolved": [
"222.117.41.51"
],
"addressUsed": "222.117.41.51"
}
]
}
]
}
2026-02-15 01:53:23,392:DEBUG:acme.client:Storing nonce: QkEzerAfRd3ApU9wqlGKFrr8ynXUod788KPNiE_LCow1T_uNR3k
2026-02-15 01:53:23,392:DEBUG:certbot._internal.client:CSR: CSR(file=None, data=b'-----BEGIN CERTIFICATE REQUEST-----\nMIIBKTCBrwIBADAAMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE7ZAcanp3QlMenYln\nHTD7y/aMNQsYPRK/GPbY52fqKJTuDETZiujJiW2ouXb36OiEHOeqiBh0CeEBas1C\n+6FetlNbP9eEZFeW4EAyUJpSyY8fzUrbz1+74Gy/NO1zCCSeoDAwLgYJKoZIhvcN\nAQkOMSEwHzAdBgNVHREEFjAUghJnaXQuaGFubW9jbm4uY28ua3IwCgYIKoZIzj0E\nAwIDaQAwZgIxAIX8GWa4RGMhJGbNLWSR+POe/0WtswWV8x3F0RAfRNUSKtajsegi\nS8p0E8O7yzY4egIxAP4lsygfSMg8agBLYJwIv1VEiPTgp/zFAbI/AZoZqarecqWW\n2FJMR0Y6bW7QwCaCTA==\n-----END CERTIFICATE REQUEST-----\n', form='pem')
2026-02-15 01:53:23,393:DEBUG:certbot._internal.client:Will poll for certificate issuance until 2026-02-15 01:54:53.393497
2026-02-15 01:53:23,394:DEBUG:acme.client:JWS payload:
b'{\n "csr": "MIIBKTCBrwIBADAAMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE7ZAcanp3QlMenYlnHTD7y_aMNQsYPRK_GPbY52fqKJTuDETZiujJiW2ouXb36OiEHOeqiBh0CeEBas1C-6FetlNbP9eEZFeW4EAyUJpSyY8fzUrbz1-74Gy_NO1zCCSeoDAwLgYJKoZIhvcNAQkOMSEwHzAdBgNVHREEFjAUghJnaXQuaGFubW9jbm4uY28ua3IwCgYIKoZIzj0EAwIDaQAwZgIxAIX8GWa4RGMhJGbNLWSR-POe_0WtswWV8x3F0RAfRNUSKtajsegiS8p0E8O7yzY4egIxAP4lsygfSMg8agBLYJwIv1VEiPTgp_zFAbI_AZoZqarecqWW2FJMR0Y6bW7QwCaCTA"\n}'
2026-02-15 01:53:23,398:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/finalize/3064386906/480409206716:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMzA2NDM4NjkwNiIsICJub25jZSI6ICJRa0V6ZXJBZlJkM0FwVTl3cWxHS0Zycjh5blhVb2Q3ODhLUE5pRV9MQ293MVRfdU5SM2siLCAidXJsIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2ZpbmFsaXplLzMwNjQzODY5MDYvNDgwNDA5MjA2NzE2In0",
"signature": "Bi6hElJl4Oyw45hxpguXUi4m-kHZxLB2eQwSvZ_zg6ud2TTcA3XEHKrII60OeSqKdIEQi6OPJiRjkzd1ezPGXdkJLpCJ6MROCMBuuzZ_txS5Yx5uwnwLe7cX2VXZ3cf4L5HjYM_3mYt9kPO4ByiXhELIMeALK7ngR5_2y8ej-wXhYpl-lm95-ZrqV7oxVSt3Mx4uNAgG8-kP3_-WQVjGppZzzVmRWFZ3plfzut2Cp9lRNDfi_TvQkQ4NXjK0WbXJDxvti07fkwjXutpEpbYz4heqp-PaxRY09KMGbenbjj0O2vkbD_RA9Zzv0nswGLrvVmS4pe5wFiOKpur3-l1EJQ",
"payload": "ewogICJjc3IiOiAiTUlJQktUQ0Jyd0lCQURBQU1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFN1pBY2FucDNRbE1lbllsbkhURDd5X2FNTlFzWVBSS19HUGJZNTJmcUtKVHVERVRaaXVqSmlXMm91WGIzNk9pRUhPZXFpQmgwQ2VFQmFzMUMtNkZldGxOYlA5ZUVaRmVXNEVBeVVKcFN5WThmelVyYnoxLTc0R3lfTk8xekNDU2VvREF3TGdZSktvWklodmNOQVFrT01TRXdIekFkQmdOVkhSRUVGakFVZ2hKbmFYUXVhR0Z1Ylc5amJtNHVZMjh1YTNJd0NnWUlLb1pJemowRUF3SURhUUF3WmdJeEFJWDhHV2E0UkdNaEpHYk5MV1NSLVBPZV8wV3Rzd1dWOHgzRjBSQWZSTlVTS3RhanNlZ2lTOHAwRThPN3l6WTRlZ0l4QVA0bHN5Z2ZTTWc4YWdCTFlKd0l2MVZFaVBUZ3BfekZBYklfQVpvWnFhcmVjcVdXMkZKTVIwWTZiVzdRd0NhQ1RBIgp9"
}
2026-02-15 01:53:24,814:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/finalize/3064386906/480409206716 HTTP/1.1" 200 454
2026-02-15 01:53:24,815:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Sun, 15 Feb 2026 01:53:24 GMT
Content-Type: application/json
Content-Length: 454
Connection: keep-alive
Boulder-Requester: 3064386906
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Location: https://acme-v02.api.letsencrypt.org/acme/order/3064386906/480409206716
Replay-Nonce: QkEzerAf-62VIy5uF6WKUM_0j4Ve47MTMI-BkVhP5zXT1TfCzrk
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"status": "valid",
"expires": "2026-02-22T01:53:23Z",
"identifiers": [
{
"type": "dns",
"value": "git.hanmocnn.co.kr"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz/3064386906/658839462036"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/3064386906/480409206716",
"certificate": "https://acme-v02.api.letsencrypt.org/acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2"
}
2026-02-15 01:53:24,815:DEBUG:acme.client:Storing nonce: QkEzerAf-62VIy5uF6WKUM_0j4Ve47MTMI-BkVhP5zXT1TfCzrk
2026-02-15 01:53:25,816:DEBUG:acme.client:JWS payload:
b''
2026-02-15 01:53:25,820:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/order/3064386906/480409206716:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMzA2NDM4NjkwNiIsICJub25jZSI6ICJRa0V6ZXJBZi02MlZJeTV1RjZXS1VNXzBqNFZlNDdNVE1JLUJrVmhQNXpYVDFUZkN6cmsiLCAidXJsIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL29yZGVyLzMwNjQzODY5MDYvNDgwNDA5MjA2NzE2In0",
"signature": "vMnBNE3IKK2s3YQ5jOEAYzwlZrq0I89Cz-8t911nhsBrHCuDTbtQuSMQayO0c3OVf4jBxJLJuEYYPYmEPZ679TcNLQTi8Fl8e2SKqaH8-CYrN29R1zgsAYE_9JbhZIQA_ereyzJqyqoQo7UFNwoDmbZmMopZoKOChHfFt8vcaShIEL_7VVZSLJ3Mfi-BuPg0Ma0plB86pstM-3T0xoc2p0c5uDPagrreaGwj0Phkt_-Lu5sLDIFXMUpnZxsFLknAW8pv6F3AsT_qA1BQgD460593TH54HbFERLM2avWrArxwf4u05wVD9MG8-9Aoi-sREAvGv5MojORDx51tDaSqxA",
"payload": ""
}
2026-02-15 01:53:25,999:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/order/3064386906/480409206716 HTTP/1.1" 200 454
2026-02-15 01:53:26,000:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Sun, 15 Feb 2026 01:53:25 GMT
Content-Type: application/json
Content-Length: 454
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Location: https://acme-v02.api.letsencrypt.org/acme/order/3064386906/480409206716
Replay-Nonce: qLPTsdtf7nABj_xfpx_vC8SHnUvfzzrQZwNnFbBx2xeMVgUvgqM
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"status": "valid",
"expires": "2026-02-22T01:53:23Z",
"identifiers": [
{
"type": "dns",
"value": "git.hanmocnn.co.kr"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz/3064386906/658839462036"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/3064386906/480409206716",
"certificate": "https://acme-v02.api.letsencrypt.org/acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2"
}
2026-02-15 01:53:26,000:DEBUG:acme.client:Storing nonce: qLPTsdtf7nABj_xfpx_vC8SHnUvfzzrQZwNnFbBx2xeMVgUvgqM
2026-02-15 01:53:26,000:DEBUG:acme.client:JWS payload:
b''
2026-02-15 01:53:26,005:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMzA2NDM4NjkwNiIsICJub25jZSI6ICJxTFBUc2R0ZjduQUJqX3hmcHhfdkM4U0huVXZmenpyUVp3Tm5GYkJ4MnhlTVZnVXZncU0iLCAidXJsIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2NlcnQvMDYzYTJkYTI4YjAwYjJmMjY3YTNjZDE2OTMzN2MwN2FkOWEyIn0",
"signature": "i8RhvsB81LlMh7nm_ItJXK5fXbZr8YsqP7SDnbEa30hEmK5g0n0-f7hDhua2Qv4MY80fAcQYVJpwT9YGiuVv_iDVrUY68BpwalRci79vAC0jBXaJb1sN4IOpc6fTgQnJqGX04YZqRvgcg8k5W4J31FoGqcNi8kQapst_XpZ1ylAcVDNhJD4klSlRyA2CAf43WO7Ra8V92iSoUBBMokysa83OnglG6NO6KnWTgmu9IxmnCZkQceBmsIj7U3tKdgOLxllgARu2GKgRtTOoGmDouzUeMTRXr9L_pMA5ZzT_WhknVTsOZ7Wp5dSes-o0t_z5rSF16MKfZDFM1VT-9sAlsQ",
"payload": ""
}
2026-02-15 01:53:26,183:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2 HTTP/1.1" 200 2885
2026-02-15 01:53:26,184:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Sun, 15 Feb 2026 01:53:26 GMT
Content-Type: application/pem-certificate-chain
Content-Length: 2885
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index", <https://acme-v02.api.letsencrypt.org/acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2/1>;rel="alternate"
Replay-Nonce: qLPTsdtffEZaTjSpANFtAGOp0QEYnQLfiuY8-tbgnSfxKI78uV0
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
-----BEGIN CERTIFICATE-----
MIIDoTCCAymgAwIBAgISBjotoosAsvJno80WkzfAetmiMAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
ODAeFw0yNjAyMTUwMDU0NTRaFw0yNjA1MTYwMDU0NTNaMB0xGzAZBgNVBAMTEmdp
dC5oYW5tb2Nubi5jby5rcjB2MBAGByqGSM49AgEGBSuBBAAiA2IABO2QHGp6d0JT
Hp2JZx0w+8v2jDULGD0Svxj22Odn6iiU7gxE2YroyYltqLl29+johBznqogYdAnh
AWrNQvuhXrZTWz/XhGRXluBAMlCaUsmPH81K289fu+BsvzTtcwgknqOCAhUwggIR
MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8E
AjAAMB0GA1UdDgQWBBQjXg5iaIl+VaOsKFNBDYMgWCIYbDAfBgNVHSMEGDAWgBSP
DROi9i5+0VBsMxg4XVmOI3KRyjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly9lOC5pLmxlbmNyLm9yZy8wHQYDVR0RBBYwFIISZ2l0Lmhhbm1vY25u
LmNvLmtyMBMGA1UdIAQMMAowCAYGZ4EMAQIBMC0GA1UdHwQmMCQwIqAgoB6GHGh0
dHA6Ly9lOC5jLmxlbmNyLm9yZy8zNS5jcmwwggEDBgorBgEEAdZ5AgQCBIH0BIHx
AO8AdgBJnJtp3h187Pw23s2HZKa4W68Kh4AZ0VVS++nrKd34wwAAAZxfAKdsAAAE
AwBHMEUCIQDsy9jhLjXeJoQMItYmlsDlg2dPc4bQdwlkxZ83ASW7CgIgDTYtHiyx
Ra5tMOEnPAgL3rgoGxHqUuRhL44mliLadqsAdQAOV5S8866pPjMbLJkHs/eQ35vC
PXEyJd0hqSWsYcVOIQAAAZxfAKd6AAAEAwBGMEQCIGW+1m6yYhpFaSytT2ZcvXan
J70bg4okL9UiIcHsyn5EAiA+214YOe6J72XannRc2zDN0+qcm3JqCKuGuMzyNNac
LjAKBggqhkjOPQQDAwNmADBjAjAaJFlyIY07BWGd19PrzlR9FgOMjfhIcaiK1hb4
FiCeJ11NYipDkHVMSsWacpb3cBQCL2pPIsXrhVKMMGtgG3N1uJ3t3+XycX0f8uQZ
TqpyEvrK/2BVnebJ42j/TLbZKe2F
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEVjCCAj6gAwIBAgIQY5WTY8JOcIJxWRi/w9ftVjANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
Fw0yNzAzMTIyMzU5NTlaMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
bmNyeXB0MQswCQYDVQQDEwJFODB2MBAGByqGSM49AgEGBSuBBAAiA2IABNFl8l7c
S7QMApzSsvru6WyrOq44ofTUOTIzxULUzDMMNMchIJBwXOhiLxxxs0LXeb5GDcHb
R6EToMffgSZjO9SNHfY9gjMy9vQr5/WWOrQTZxh7az6NSNnq3u2ubT6HTKOB+DCB
9TAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB
MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI8NE6L2Ln7RUGwzGDhdWY4j
cpHKMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEB
BCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzATBgNVHSAE
DDAKMAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5j
ci5vcmcvMA0GCSqGSIb3DQEBCwUAA4ICAQBnE0hGINKsCYWi0Xx1ygxD5qihEjZ0
RI3tTZz1wuATH3ZwYPIp97kWEayanD1j0cDhIYzy4CkDo2jB8D5t0a6zZWzlr98d
AQFNh8uKJkIHdLShy+nUyeZxc5bNeMp1Lu0gSzE4McqfmNMvIpeiwWSYO9w82Ob8
otvXcO2JUYi3svHIWRm3+707DUbL51XMcY2iZdlCq4Wa9nbuk3WTU4gr6LY8MzVA
aDQG2+4U3eJ6qUF10bBnR1uuVyDYs9RhrwucRVnfuDj29CMLTsplM5f5wSV5hUpm
Uwp/vV7M4w4aGunt74koX71n4EdagCsL/Yk5+mAQU0+tue0JOfAV/R6t1k+Xk9s2
HMQFeoxppfzAVC04FdG9M+AC2JWxmFSt6BCuh3CEey3fE52Qrj9YM75rtvIjsm/1
Hl+u//Wqxnu1ZQ4jpa+VpuZiGOlWrqSP9eogdOhCGisnyewWJwRQOqK16wiGyZeR
xs/Bekw65vwSIaVkBruPiTfMOo0Zh4gVa8/qJgMbJbyrwwG97z/PRgmLKCDl8z3d
tA0Z7qq7fta0Gl24uyuB05dqI5J1LvAzKuWdIjT1tP8qCoxSE/xpix8hX2dt3h+/
jujUgFPFZ0EVZ0xSyBNRF3MboGZnYXFUxpNjTWPKpagDHJQmqrAcDmWJnMsFY3jS
u1igv3OefnWjSQ==
-----END CERTIFICATE-----
2026-02-15 01:53:26,184:DEBUG:acme.client:Storing nonce: qLPTsdtffEZaTjSpANFtAGOp0QEYnQLfiuY8-tbgnSfxKI78uV0
2026-02-15 01:53:26,185:DEBUG:acme.client:JWS payload:
b''
2026-02-15 01:53:26,189:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2/1:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMzA2NDM4NjkwNiIsICJub25jZSI6ICJxTFBUc2R0ZmZFWmFUalNwQU5GdEFHT3AwUUVZblFMZml1WTgtdGJnblNmeEtJNzh1VjAiLCAidXJsIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2NlcnQvMDYzYTJkYTI4YjAwYjJmMjY3YTNjZDE2OTMzN2MwN2FkOWEyLzEifQ",
"signature": "V4Gjh8GxzcOzTh-QYcEuKufBewF8gp3FUxRLWPCMFeDQpFcebcsIliEbqZmzr0BFuMSqVYPYvbWBFs3Dhtf9KwoKR9RQnIVpZd_Adku-kH5-ZETduBxSg8OhPZDnXM7JRo3kFSueQTRhb_wmc8t8myVsTkStPIi9QQ-9KxDK-9eTKq6oddpEwkLtfn-HcNYFGb9rUl4kemxou-p57Q7syOVYFoTxAMgqfWlqoGEkPiOPijvc21QV6heLOFL237APw6mah-TFy__FKWE2qsMnqwUt-j-0zc8jamnjEZkOBWmeLCmSm0VHrlRWH-YnZ7r-f19cfCMpZzPmc-m-gs3aTw",
"payload": ""
}
2026-02-15 01:53:26,380:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2/1 HTTP/1.1" 200 2320
2026-02-15 01:53:26,381:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Sun, 15 Feb 2026 01:53:26 GMT
Content-Type: application/pem-certificate-chain
Content-Length: 2320
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index", <https://acme-v02.api.letsencrypt.org/acme/cert/063a2da28b00b2f267a3cd169337c07ad9a2/0>;rel="alternate"
Replay-Nonce: qLPTsdtfwSYsFE7-JIK1dHgMxweu1kVeaqKyz4OjYM0Ebu0SZ2Q
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
-----BEGIN CERTIFICATE-----
MIIDoTCCAymgAwIBAgISBjotoosAsvJno80WkzfAetmiMAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
ODAeFw0yNjAyMTUwMDU0NTRaFw0yNjA1MTYwMDU0NTNaMB0xGzAZBgNVBAMTEmdp
dC5oYW5tb2Nubi5jby5rcjB2MBAGByqGSM49AgEGBSuBBAAiA2IABO2QHGp6d0JT
Hp2JZx0w+8v2jDULGD0Svxj22Odn6iiU7gxE2YroyYltqLl29+johBznqogYdAnh
AWrNQvuhXrZTWz/XhGRXluBAMlCaUsmPH81K289fu+BsvzTtcwgknqOCAhUwggIR
MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8E
AjAAMB0GA1UdDgQWBBQjXg5iaIl+VaOsKFNBDYMgWCIYbDAfBgNVHSMEGDAWgBSP
DROi9i5+0VBsMxg4XVmOI3KRyjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly9lOC5pLmxlbmNyLm9yZy8wHQYDVR0RBBYwFIISZ2l0Lmhhbm1vY25u
LmNvLmtyMBMGA1UdIAQMMAowCAYGZ4EMAQIBMC0GA1UdHwQmMCQwIqAgoB6GHGh0
dHA6Ly9lOC5jLmxlbmNyLm9yZy8zNS5jcmwwggEDBgorBgEEAdZ5AgQCBIH0BIHx
AO8AdgBJnJtp3h187Pw23s2HZKa4W68Kh4AZ0VVS++nrKd34wwAAAZxfAKdsAAAE
AwBHMEUCIQDsy9jhLjXeJoQMItYmlsDlg2dPc4bQdwlkxZ83ASW7CgIgDTYtHiyx
Ra5tMOEnPAgL3rgoGxHqUuRhL44mliLadqsAdQAOV5S8866pPjMbLJkHs/eQ35vC
PXEyJd0hqSWsYcVOIQAAAZxfAKd6AAAEAwBGMEQCIGW+1m6yYhpFaSytT2ZcvXan
J70bg4okL9UiIcHsyn5EAiA+214YOe6J72XannRc2zDN0+qcm3JqCKuGuMzyNNac
LjAKBggqhkjOPQQDAwNmADBjAjAaJFlyIY07BWGd19PrzlR9FgOMjfhIcaiK1hb4
FiCeJ11NYipDkHVMSsWacpb3cBQCL2pPIsXrhVKMMGtgG3N1uJ3t3+XycX0f8uQZ
TqpyEvrK/2BVnebJ42j/TLbZKe2F
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICtTCCAjugAwIBAgIQfo8UX4exWTMtf9QIK4JraTAKBggqhkjOPQQDAzBPMQsw
CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yNDAzMTMwMDAwMDBaFw0y
NzAzMTIyMzU5NTlaMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNy
eXB0MQswCQYDVQQDEwJFODB2MBAGByqGSM49AgEGBSuBBAAiA2IABNFl8l7cS7QM
ApzSsvru6WyrOq44ofTUOTIzxULUzDMMNMchIJBwXOhiLxxxs0LXeb5GDcHbR6ET
oMffgSZjO9SNHfY9gjMy9vQr5/WWOrQTZxh7az6NSNnq3u2ubT6HTKOB+DCB9TAO
BgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIG
A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI8NE6L2Ln7RUGwzGDhdWY4jcpHK
MB8GA1UdIwQYMBaAFHxClq7eS0g7+pL4nozPbYupcjeVMDIGCCsGAQUFBwEBBCYw
JDAiBggrBgEFBQcwAoYWaHR0cDovL3gyLmkubGVuY3Iub3JnLzATBgNVHSAEDDAK
MAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDIuYy5sZW5jci5v
cmcvMAoGCCqGSM49BAMDA2gAMGUCMQClsUNJdX36GE+o2yDf7L02m3P3ElVWRLls
5ZyLYPjcNamBxRB9gZYoj24mGZtP3GkCMASZcALg6kpScomqIIjVHXRUQ500cdl4
4n7fhxwokLo/lVlO8YyHwAi7ejTHtvw9Vg==
-----END CERTIFICATE-----
2026-02-15 01:53:26,381:DEBUG:acme.client:Storing nonce: qLPTsdtfwSYsFE7-JIK1dHgMxweu1kVeaqKyz4OjYM0Ebu0SZ2Q
2026-02-15 01:53:26,383:INFO:certbot._internal.client:Non-standard path(s), might not work with crontab installed by your operating system package manager
2026-02-15 01:53:26,383:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/archive/npm-7.
2026-02-15 01:53:26,383:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/live/npm-7.
2026-02-15 01:53:26,384:DEBUG:certbot._internal.storage:Writing certificate to /etc/letsencrypt/live/npm-7/cert.pem.
2026-02-15 01:53:26,384:DEBUG:certbot._internal.storage:Writing private key to /etc/letsencrypt/live/npm-7/privkey.pem.
2026-02-15 01:53:26,384:DEBUG:certbot._internal.storage:Writing chain to /etc/letsencrypt/live/npm-7/chain.pem.
2026-02-15 01:53:26,384:DEBUG:certbot._internal.storage:Writing full chain to /etc/letsencrypt/live/npm-7/fullchain.pem.
2026-02-15 01:53:26,384:DEBUG:certbot._internal.storage:Writing README to /etc/letsencrypt/live/npm-7/README.
2026-02-15 01:53:26,395:DEBUG:certbot.configuration:Var account=ce2ddac5740bb12d4d6591b7fa1728af (set by user).
2026-02-15 01:53:26,395:DEBUG:certbot.configuration:Var key_type=ecdsa (set by user).
2026-02-15 01:53:26,395:DEBUG:certbot.configuration:Var elliptic_curve=secp384r1 (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var preferred_chain=ISRG Root X1 (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var pref_challs=['http-01'] (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var config_dir=/etc/letsencrypt (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var work_dir=/tmp/letsencrypt-lib (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var logs_dir=/data/logs (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2026-02-15 01:53:26,396:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var webroot_path=['/data/letsencrypt-acme-challenge'] (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var webroot_path=['/data/letsencrypt-acme-challenge'] (set by user).
2026-02-15 01:53:26,396:DEBUG:certbot.configuration:Var webroot_map={'webroot_path'} (set by user).
2026-02-15 01:53:26,398:DEBUG:certbot._internal.display.obj:Notifying user:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/npm-7/fullchain.pem
Key is saved at: /etc/letsencrypt/live/npm-7/privkey.pem
This certificate expires on 2026-05-16.
These files will be updated when the certificate renews.
2026-02-15 01:53:26,399:DEBUG:certbot._internal.display.obj:Notifying user: NEXT STEPS:
2026-02-15 01:53:26,399:DEBUG:certbot._internal.display.obj:Notifying user: - The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.
2026-02-15 01:53:26,402:DEBUG:certbot._internal.display.obj:Notifying user: 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