Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

luci-app-acme: improve UI for inexperienced users #7147

Draft
wants to merge 25 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
4007313
luci-app-acme: dns_wait option
stokito Jun 1, 2024
28ec2b4
luci-app-acme: Move link out of translations
stokito Jun 1, 2024
96495b6
luci-app-acme: introduction: remove LetsEncrypt mention
stokito Jun 1, 2024
b0d2426
luci-app-acme: introduction: clarify that ZeroSSL is by default
stokito Jun 1, 2024
abc07d5
luci-app-acme: acme_server: remove Let's Encrypt from title
stokito Jun 1, 2024
6249c07
luci-app-acme: acme_server: add "See more" link
stokito Jun 1, 2024
7706c6d
luci-app-acme: introduction: add link to OpenWrt Wiki
stokito Jun 1, 2024
76ca13f
luci-app-acme: put validation_method above domains
stokito Jun 1, 2024
99aea87
luci-app-acme: Validate domains
stokito Jun 1, 2024
30f8b1b
luci-app-acme: show button "Install package acme-acmesh-dnsapi" if DN…
stokito Jun 1, 2024
1e8a228
luci-app-acme: Guess the system domain and pre-fill it to domains.
stokito Jun 1, 2024
8e86389
luci-app-acme: Import domains from DDNS
stokito Jun 1, 2024
8ed4768
luci-app-acme: Add Log reader
stokito Jun 1, 2024
30e8b84
luci-app-acme: Set default validation_method to standalone
stokito Jun 2, 2024
86458bb
luci-app-acme: LetsEncrypt is default
stokito Jun 3, 2024
94f551e
luci-app-acme: code style: Use <br />
stokito Jun 3, 2024
dc3c47d
luci-app-acme: ACL for /proc/sys/kernel/hostname
stokito Jun 3, 2024
ef59e3c
luci-app-acme: domains validate
stokito Jun 3, 2024
35f4d1e
luci-app-acme: staging: show the flag only for letsencrypt
stokito Jun 3, 2024
c11d803
luci-app-acme: fix typo
stokito Jun 4, 2024
3ff1564
luci-app-acme: fix _isFqdn() to not allow raw IPv4
stokito Jun 4, 2024
6b4530d
luci-app-acme: remove the ZeroSSL mention
stokito Jun 4, 2024
c5a7289
luci-app-acme: DDNS import: check for duplicates
stokito Jun 4, 2024
faefaf1
luci-app-acme: DDNS import: also create a wildcard domain
stokito Jun 4, 2024
7b3206d
luci-app-acme: wildcards * require Validation method: DNS
stokito Jun 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,12 @@ return view.extend({

o = s.taboption('challenge_dns', form.ListValue, 'dns', _('DNS API'),
_("To use DNS mode to issue certificates, set this to the name of a DNS API supported by acme.sh. " +
"See https://github.com/acmesh-official/acme.sh/wiki/dnsapi for the list of available APIs. " +
'See %s for the list of available APIs. ' +
"In DNS mode, the domain name does not have to resolve to the router IP. " +
"DNS mode is also the only mode that supports wildcard certificates. " +
"Using this mode requires the acme-dnsapi package to be installed."));
"Using this mode requires the acme-dnsapi package to be installed.")
.format('<a href="https://github.com/acmesh-official/acme.sh/wiki/dnsapi" target="_blank">DNS API</a>')
stokito marked this conversation as resolved.
Show resolved Hide resolved
);
o.depends("validation_method", "dns");
// List of supported DNS API. Names are same as file names in acme.sh for easier search.
// May be outdated but not changed too often.
Expand Down Expand Up @@ -443,23 +445,29 @@ return view.extend({

o = s.taboption('challenge_dns', form.DynamicList, 'credentials', _('DNS API credentials'),
_("The credentials for the DNS API mode selected above. " +
"See https://github.com/acmesh-official/acme.sh/wiki/dnsapi for the format of credentials required by each API. " +
"Add multiple entries here in KEY=VAL shell variable format to supply multiple credential variables."))
'See %s for the format of credentials required by each API. ' +
'Add multiple entries here in KEY=VAL shell variable format to supply multiple credential variables.')
.format('<a href="https://github.com/acmesh-official/acme.sh/wiki/dnsapi" target="_blank">DNS API</a>')
)
o.datatype = "list(string)";
o.depends("validation_method", "dns");
o.modalonly = true;

o = s.taboption('challenge_dns', form.Value, 'calias', _('Challenge Alias'),
_("The challenge alias to use for ALL domains. " +
"See https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode for the details of this process. " +
"LUCI only supports one challenge alias per certificate."));
'See %s for the details of this process. ' +
'LUCI only supports one challenge alias per certificate.')
.format('<a href="https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode" target="_blank">DNS Alias Mode</a>')
);
o.depends("validation_method", "dns");
o.modalonly = true;

o = s.taboption('challenge_dns', form.Value, 'dalias', _('Domain Alias'),
_("The domain alias to use for ALL domains. " +
"See https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode for the details of this process. " +
"LUCI only supports one challenge domain per certificate."));
'See %s for the details of this process. ' +
'LUCI only supports one challenge domain per certificate.')
.format('<a href="https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode" target="_blank">DNS Alias Mode</a>')
);
o.depends("validation_method", "dns");
o.modalonly = true;

Expand Down
125 changes: 59 additions & 66 deletions applications/luci-app-acme/po/ar/acme.po
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ msgstr "‍ شهادات بيئة إدارة الشهادات التلقائية
msgid "ACME global config"
msgstr "التكوين العالمي لبيئة إدارة الشهادات التلقائية"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:515
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:523
msgid "ACME server URL"
msgstr "عنوان URL لخادم ACME"

Expand All @@ -32,7 +32,7 @@ msgstr "حساب البريد الإلكتروني"
msgid "Advanced Settings"
msgstr "إعدادات متقدمة"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:433
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:435
msgid "Base64 content of private key. Use instead of YC_SA_Key_File_Path"
msgstr ""

Expand All @@ -44,15 +44,15 @@ msgstr "حيث يتم حفظ شهادات وملفات الدولة الأخرى
msgid "Certificate config"
msgstr "تكوين الشهادة"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:606
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:614
msgid "Certificates"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:452
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:456
msgid "Challenge Alias"
msgstr "الاسم المستعار لاعتراض"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:516
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:524
msgid "Custom ACME server directory URL."
msgstr "عنوان URL مخصص لدليل خادم ACME."

Expand All @@ -64,23 +64,23 @@ msgstr "نظام أسماء النطاقات"
msgid "DNS API"
msgstr "واجهة برمجة تطبيقات لنظام أسماء النطاقات"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:444
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:446
msgid "DNS API credentials"
msgstr "مؤهلات واجهة برمجة تطبيقات لنظام أسماء النطاقات"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:56
msgid "DNS Challenge Validation"
msgstr "DNS التحقق من صحة التحدي"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:522
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:530
msgid "Days until renewal"
msgstr "الأيام حتى التجديد"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:81
msgid "Default"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:459
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:465
msgid "Domain Alias"
msgstr "الاسم المستعار للنطاق"

Expand All @@ -98,17 +98,17 @@ msgstr ""
"وستكون الأسماء اللاحقة أسماء بديلة. لاحظ أن جميع أسماء النطاقات يجب أن تشير "
"إلى جهاز التوجيه في نظام أسماء النطاقات العام."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:410
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:412
msgid ""
"E.g. <code>_acme-challenge.example.com:12345:98765 alias.example.com:11111</"
"code>"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:489
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:497
msgid "ECC 256 bits"
msgstr "ECC 256 بت"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:490
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:498
msgid "ECC 384 bits"
msgstr "ECC 384 بت"

Expand All @@ -128,7 +128,7 @@ msgstr "مفعل"
msgid "General Settings"
msgstr "الاعدادات العامة"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:476
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:484
msgid ""
"Get certificate from the Letsencrypt staging server (use for testing; the "
"certificate won't be valid)."
Expand All @@ -146,72 +146,72 @@ msgid ""
"days before expiry."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:588
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:596
msgid "Issued on"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:484
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:492
msgid "Key size (and type) for the generated certificate."
msgstr "حجم المفتاح (والنوع) للشهادة التي تم إنشاؤها."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:483
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:491
msgid "Key type"
msgstr "حجم المفتاح"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:585
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:593
msgid "Main Domain"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:369
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:371
msgid "OCID of tenancy that contains the target DNS zone"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:372
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:374
msgid "OCID of user with permission to add/remove records from zones"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:275
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:277
msgid ""
"Open <a href=\"https://www.duckdns.org/\">DuckDNS</a> and copy a token here"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:378
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:380
msgid "Path to private API signing key file in PEM format"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:586
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:594
msgid "Private Key"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:587
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:595
msgid "Public Certificate"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:486
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:494
msgid "RSA 2048 bits"
msgstr "RSA 2048 بت"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:487
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:495
msgid "RSA 3072 bits"
msgstr "RSA 3072 بت"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:488
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:496
msgid "RSA 4096 bits"
msgstr "RSA 4096 بت"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:467
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:475
msgid "Seconds to wait for a DNS record to be updated before continue."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:236
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:238
msgid "See instructions"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:468
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:476
msgid "See more"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:375
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:377
msgid "Should point to the tenancy home region"
msgstr ""

Expand All @@ -230,39 +230,33 @@ msgstr ""
"Webroot خادم ويب موجودًا لإصدار شهادة. سيسمح لك وضع DNS باستخدام DNS API "
"لمزود DNS الخاص بك لإصدار شهادة."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:453
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:457
msgid ""
"The challenge alias to use for ALL domains. See https://github.com/acmesh-"
"official/acme.sh/wiki/DNS-alias-mode for the details of this process. LUCI "
"only supports one challenge alias per certificate."
"The challenge alias to use for ALL domains. See %s for the details of this "
"process. LUCI only supports one challenge alias per certificate."
msgstr ""
"الاسم المستعار الاعتراضي لاستخدامه لكل أسماء النقابات. انظرإلى https://"
"github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode للاطلاع على تفاصيل "
"هذه العملية. يدعم LUCI اسمًا مستعارًا واحدًا فقط للاعتراض لكل شهادة."
"الاسم المستعار الاعتراضي لاستخدامه لكل أسماء النقابات. انظرإلى %s للاطلاع "
"على تفاصيل هذه العملية. يدعم LUCI اسمًا مستعارًا واحدًا فقط للاعتراض لكل شهادة."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:445
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:447
msgid ""
"The credentials for the DNS API mode selected above. See https://github.com/"
"acmesh-official/acme.sh/wiki/dnsapi for the format of credentials required "
"by each API. Add multiple entries here in KEY=VAL shell variable format to "
"supply multiple credential variables."
"The credentials for the DNS API mode selected above. See %s for the format "
"of credentials required by each API. Add multiple entries here in KEY=VAL "
"shell variable format to supply multiple credential variables."
msgstr ""
"بيانات اعتماد وضع واجهة برمجة تطبيقات نظام اسم المجال المحدد أعلاه. راجع "
"https://github.com/acmesh-official/acme.sh/wiki/dnsapi لتنسيق بيانات "
"الاعتماد التي تتطلبها كل واجهة برمجة تطبيقات. أضف إدخالات متعددة هنا في "
"تنسيق متغير shell \"KEY = VAL\" لتوفير متغيرات اعتماد متعددة."
"بيانات اعتماد وضع واجهة برمجة تطبيقات نظام اسم المجال المحدد أعلاه. راجع %s "
"لتنسيق بيانات الاعتماد التي تتطلبها كل واجهة برمجة تطبيقات. أضف إدخالات "
"متعددة هنا في تنسيق متغير shell \"KEY = VAL\" لتوفير متغيرات اعتماد متعددة."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:460
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:466
msgid ""
"The domain alias to use for ALL domains. See https://github.com/acmesh-"
"official/acme.sh/wiki/DNS-alias-mode for the details of this process. LUCI "
"only supports one challenge domain per certificate."
"The domain alias to use for ALL domains. See %s for the details of this "
"process. LUCI only supports one challenge domain per certificate."
msgstr ""
"اسم النطاق المستعار لاستخدامها في جميع المجالات. انظر https://github.com/"
"acmesh-official/acme.sh/wiki/DNS-alias-mode عن تفاصيل هذه العملية. لوسي يدعم "
"فقط واحد التحدي المجال لكل شهادة."
"اسم النطاق المستعار لاستخدامها في جميع المجالات. انظر %s عن تفاصيل هذه "
"العملية. لوسي يدعم فقط واحد التحدي المجال لكل شهادة."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:381
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:383
msgid "The private API signing key in PEM format"
msgstr ""

Expand All @@ -281,38 +275,37 @@ msgstr ""
"بروتوكول الإنترنت العام لجهاز التوجيه. بمجرد التكوين ، يمكن أن يستغرق إصدار "
"الشهادات بعض الوقت. يمكنك التحقق من سجلات التقدم وأية أخطاء."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:297
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:299
msgid "This is usually NOT an email address"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:88
msgid ""
"To use DNS mode to issue certificates, set this to the name of a DNS API "
"supported by acme.sh. See https://github.com/acmesh-official/acme.sh/wiki/"
"dnsapi for the list of available APIs. In DNS mode, the domain name does not "
"have to resolve to the router IP. DNS mode is also the only mode that "
"supports wildcard certificates. Using this mode requires the acme-dnsapi "
"package to be installed."
"supported by acme.sh. See %s for the list of available APIs. In DNS mode, "
"the domain name does not have to resolve to the router IP. DNS mode is also "
"the only mode that supports wildcard certificates. Using this mode requires "
"the acme-dnsapi package to be installed."
msgstr ""
"لاستخدام وضع DNS لإصدار الشهادات ، قم بتعيين هذا على اسم API DNS المدعوم من "
"acme.sh. راجع https://github.com/acmesh-official/acme.sh/wiki/dnsapi للحصول "
"على قائمة واجهات برمجة التطبيقات المتاحة. في وضع DNS ، لا يلزم حل اسم المجال "
"إلى IP الخاص بالموجه. وضع DNS هو أيضًا الوضع الوحيد الذي يدعم شهادات أحرف "
"البدل. يتطلب استخدام هذا الوضع تثبيت حزمة acme-dnsapi."
"acme.sh. راجع %s للحصول على قائمة واجهات برمجة التطبيقات المتاحة. في وضع "
"DNS ، لا يلزم حل اسم المجال إلى IP الخاص بالموجه. وضع DNS هو أيضًا الوضع "
"الوحيد الذي يدعم شهادات أحرف البدل. يتطلب استخدام هذا الوضع تثبيت حزمة acme-"
"dnsapi."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:516
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:524
msgid "Use a custom CA instead of Let's Encrypt."
msgstr "استخدم مرجع مصدق (CA) مخصصًا بدلاً من Let's Encrypt."

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:474
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:482
msgid "Use staging server"
msgstr "استخدم خادم الترحيل"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:68
msgid "Validation method"
msgstr "طريقة التحقق من الصحة"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:466
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:474
msgid "Wait for DNS update"
msgstr ""

Expand Down
Loading