mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-01-21 19:25:43 +00:00
Merge pull request #5121 from KalebCheng/feature/certificate-key-type-selection
Add option to select RSA or ECDSA key type when creating certificates
This commit is contained in:
@@ -798,6 +798,11 @@ const internalCertificate = {
|
|||||||
certificate.domain_names.join(","),
|
certificate.domain_names.join(","),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Add key-type parameter if specified
|
||||||
|
if (certificate.meta?.key_type) {
|
||||||
|
args.push("--key-type", certificate.meta.key_type);
|
||||||
|
}
|
||||||
|
|
||||||
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id);
|
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id);
|
||||||
args.push(...adds.args);
|
args.push(...adds.args);
|
||||||
|
|
||||||
@@ -858,6 +863,11 @@ const internalCertificate = {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add key-type parameter if specified
|
||||||
|
if (certificate.meta?.key_type) {
|
||||||
|
args.push("--key-type", certificate.meta.key_type);
|
||||||
|
}
|
||||||
|
|
||||||
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
|
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
|
||||||
args.push(...adds.args);
|
args.push(...adds.args);
|
||||||
|
|
||||||
@@ -938,6 +948,11 @@ const internalCertificate = {
|
|||||||
"--disable-hook-validation",
|
"--disable-hook-validation",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Add key-type parameter if specified
|
||||||
|
if (certificate.meta?.key_type) {
|
||||||
|
args.push("--key-type", certificate.meta.key_type);
|
||||||
|
}
|
||||||
|
|
||||||
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
|
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
|
||||||
args.push(...adds.args);
|
args.push(...adds.args);
|
||||||
|
|
||||||
@@ -979,6 +994,11 @@ const internalCertificate = {
|
|||||||
"--no-random-sleep-on-renew",
|
"--no-random-sleep-on-renew",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Add key-type parameter if specified
|
||||||
|
if (certificate.meta?.key_type) {
|
||||||
|
args.push("--key-type", certificate.meta.key_type);
|
||||||
|
}
|
||||||
|
|
||||||
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
|
const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
|
||||||
args.push(...adds.args);
|
args.push(...adds.args);
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,11 @@
|
|||||||
"propagation_seconds": {
|
"propagation_seconds": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"key_type": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["rsa", "ecdsa"],
|
||||||
|
"default": "rsa"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"example": {
|
"example": {
|
||||||
|
|||||||
@@ -170,6 +170,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Тези домейни трябва вече да сочат към тази инсталация."
|
"defaultMessage": "Тези домейни трябва вече да сочат към тази инсталация."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Тип ключ"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA е широко съвместим, ECDSA е по-бърз и по-сигурен, но може да не се поддържа от по-стари системи"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "с Let's Encrypt"
|
"defaultMessage": "с Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Diese Domänen müssen bereits so konfiguriert sein, dass sie auf diese Installation verweisen."
|
"defaultMessage": "Diese Domänen müssen bereits so konfiguriert sein, dass sie auf diese Installation verweisen."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Schlüsseltyp"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA ist weit verbreitet, ECDSA ist schneller und sicherer, wird aber möglicherweise von älteren Systemen nicht unterstützt"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "Über Let's Encrypt"
|
"defaultMessage": "Über Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -170,6 +170,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "These domains must be already configured to point to this installation."
|
"defaultMessage": "These domains must be already configured to point to this installation."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Key Type"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA is widely compatible, ECDSA is faster and more secure but may not be supported by older systems"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "with Let's Encrypt"
|
"defaultMessage": "with Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -170,6 +170,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Estos dominios ya deben estar configurados para apuntar a esta instalación."
|
"defaultMessage": "Estos dominios ya deben estar configurados para apuntar a esta instalación."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Tipo de Clave"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA es ampliamente compatible, ECDSA es más rápido y seguro pero puede no ser compatible con sistemas antiguos"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "con Let's Encrypt"
|
"defaultMessage": "con Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Questi domini devono già essere configurati per puntare a questa installazione."
|
"defaultMessage": "Questi domini devono già essere configurati per puntare a questa installazione."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Tipo di Chiave"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA è ampiamente compatibile, ECDSA è più veloce e sicuro ma potrebbe non essere supportato da sistemi più vecchi"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "con Let's Encrypt"
|
"defaultMessage": "con Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "これらのドメインは、すでにこのインストール先を指すように設定されている必要がありますあ."
|
"defaultMessage": "これらのドメインは、すでにこのインストール先を指すように設定されている必要がありますあ."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "鍵タイプ"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSAは広く互換性があり、ECDSAはより高速で安全ですが、古いシステムではサポートされていない場合があります"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "Let's Encryptを使用する"
|
"defaultMessage": "Let's Encryptを使用する"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -170,6 +170,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "도메인이 이 서버를 가리키도록 설정되어 있어야 합니다."
|
"defaultMessage": "도메인이 이 서버를 가리키도록 설정되어 있어야 합니다."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "키 유형"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA는 호환성이 넓고, ECDSA는 더 빠르고 안전하지만 오래된 시스템에서 지원되지 않을 수 있습니다"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "Let's Encrypt 사용"
|
"defaultMessage": "Let's Encrypt 사용"
|
||||||
},
|
},
|
||||||
@@ -218,7 +230,7 @@
|
|||||||
"column.provider": {
|
"column.provider": {
|
||||||
"defaultMessage": "공급자"
|
"defaultMessage": "공급자"
|
||||||
},
|
},
|
||||||
"column.roles": {
|
"column.roles": {
|
||||||
"defaultMessage": "권한"
|
"defaultMessage": "권한"
|
||||||
},
|
},
|
||||||
"column.rules": {
|
"column.rules": {
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Deze domeinen moeten al worden geconfigureerd om naar deze installatie te wijzen."
|
"defaultMessage": "Deze domeinen moeten al worden geconfigureerd om naar deze installatie te wijzen."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Sleuteltype"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA is breed compatibel, ECDSA is sneller en veiliger maar wordt mogelijk niet ondersteund door oudere systemen"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "met Let's Encrypt"
|
"defaultMessage": "met Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Te domeny muszą być już skonfigurowane tak, aby wskazywały na ten serwer www"
|
"defaultMessage": "Te domeny muszą być już skonfigurowane tak, aby wskazywały na ten serwer www"
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Typ klucza"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA jest szeroko kompatybilny, ECDSA jest szybszy i bezpieczniejszy, ale może nie być obsługiwany przez starsze systemy"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "z Let's Encrypt"
|
"defaultMessage": "z Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Эти домены должны быть настроены и указывать на этот экземпляр."
|
"defaultMessage": "Эти домены должны быть настроены и указывать на этот экземпляр."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Тип ключа"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA широко совместим, ECDSA быстрее и безопаснее, но может не поддерживаться старыми системами"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "через Let's Encrypt"
|
"defaultMessage": "через Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Tieto domény musia byť už nakonfigurované tak, aby smerovali na túto inštaláciu."
|
"defaultMessage": "Tieto domény musia byť už nakonfigurované tak, aby smerovali na túto inštaláciu."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Typ kľúča"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA je široko kompatibilný, ECDSA je rýchlejší a bezpečnejší, ale nemusí byť podporovaný staršími systémami"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "pomocou Let's Encrypt"
|
"defaultMessage": "pomocou Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "Các miền này phải được cấu hình sẵn để trỏ đến cài đặt này."
|
"defaultMessage": "Các miền này phải được cấu hình sẵn để trỏ đến cài đặt này."
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "Loại khóa"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA tương thích rộng rãi, ECDSA nhanh hơn và an toàn hơn nhưng có thể không được hỗ trợ bởi các hệ thống cũ"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "bằng Let's Encrypt"
|
"defaultMessage": "bằng Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -155,6 +155,18 @@
|
|||||||
"certificates.http.warning": {
|
"certificates.http.warning": {
|
||||||
"defaultMessage": "这些域名必须配置为指向本设备。"
|
"defaultMessage": "这些域名必须配置为指向本设备。"
|
||||||
},
|
},
|
||||||
|
"certificates.key-type": {
|
||||||
|
"defaultMessage": "密钥类型"
|
||||||
|
},
|
||||||
|
"certificates.key-type-description": {
|
||||||
|
"defaultMessage": "RSA 兼容性更好,ECDSA 更快更安全但旧系统可能不支持"
|
||||||
|
},
|
||||||
|
"certificates.key-type-ecdsa": {
|
||||||
|
"defaultMessage": "ECDSA 256"
|
||||||
|
},
|
||||||
|
"certificates.key-type-rsa": {
|
||||||
|
"defaultMessage": "RSA 2048"
|
||||||
|
},
|
||||||
"certificates.request.subtitle": {
|
"certificates.request.subtitle": {
|
||||||
"defaultMessage": "使用 Let's Encrypt"
|
"defaultMessage": "使用 Let's Encrypt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useQueryClient } from "@tanstack/react-query";
|
import { useQueryClient } from "@tanstack/react-query";
|
||||||
import EasyModal, { type InnerModalProps } from "ez-modal-react";
|
import EasyModal, { type InnerModalProps } from "ez-modal-react";
|
||||||
import { Form, Formik } from "formik";
|
import { Form, Formik, Field } from "formik";
|
||||||
import { type ReactNode, useState } from "react";
|
import { type ReactNode, useState } from "react";
|
||||||
import { Alert } from "react-bootstrap";
|
import { Alert } from "react-bootstrap";
|
||||||
import Modal from "react-bootstrap/Modal";
|
import Modal from "react-bootstrap/Modal";
|
||||||
@@ -44,6 +44,7 @@ const DNSCertificateModal = EasyModal.create(({ visible, remove }: InnerModalPro
|
|||||||
provider: "letsencrypt",
|
provider: "letsencrypt",
|
||||||
meta: {
|
meta: {
|
||||||
dnsChallenge: true,
|
dnsChallenge: true,
|
||||||
|
keyType: "ecdsa",
|
||||||
},
|
},
|
||||||
} as any
|
} as any
|
||||||
}
|
}
|
||||||
@@ -63,6 +64,30 @@ const DNSCertificateModal = EasyModal.create(({ visible, remove }: InnerModalPro
|
|||||||
<div className="card m-0 border-0">
|
<div className="card m-0 border-0">
|
||||||
<div className="card-body">
|
<div className="card-body">
|
||||||
<DomainNamesField isWildcardPermitted dnsProviderWildcardSupported />
|
<DomainNamesField isWildcardPermitted dnsProviderWildcardSupported />
|
||||||
|
<Field name="meta.keyType">
|
||||||
|
{({ field }: any) => (
|
||||||
|
<div className="mb-3">
|
||||||
|
<label htmlFor="keyType" className="form-label">
|
||||||
|
<T id="certificates.key-type" />
|
||||||
|
</label>
|
||||||
|
<select
|
||||||
|
id="keyType"
|
||||||
|
className="form-select"
|
||||||
|
{...field}
|
||||||
|
>
|
||||||
|
<option value="rsa">
|
||||||
|
<T id="certificates.key-type-rsa" />
|
||||||
|
</option>
|
||||||
|
<option value="ecdsa">
|
||||||
|
<T id="certificates.key-type-ecdsa" />
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
<small className="form-text text-muted">
|
||||||
|
<T id="certificates.key-type-description" />
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Field>
|
||||||
<DNSProviderFields />
|
<DNSProviderFields />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { IconAlertTriangle } from "@tabler/icons-react";
|
import { IconAlertTriangle } from "@tabler/icons-react";
|
||||||
import { useQueryClient } from "@tanstack/react-query";
|
import { useQueryClient } from "@tanstack/react-query";
|
||||||
import EasyModal, { type InnerModalProps } from "ez-modal-react";
|
import EasyModal, { type InnerModalProps } from "ez-modal-react";
|
||||||
import { Form, Formik } from "formik";
|
import { Form, Formik, Field } from "formik";
|
||||||
import { type ReactNode, useState } from "react";
|
import { type ReactNode, useState } from "react";
|
||||||
import { Alert } from "react-bootstrap";
|
import { Alert } from "react-bootstrap";
|
||||||
import Modal from "react-bootstrap/Modal";
|
import Modal from "react-bootstrap/Modal";
|
||||||
@@ -115,6 +115,9 @@ const HTTPCertificateModal = EasyModal.create(({ visible, remove }: InnerModalPr
|
|||||||
{
|
{
|
||||||
domainNames: [],
|
domainNames: [],
|
||||||
provider: "letsencrypt",
|
provider: "letsencrypt",
|
||||||
|
meta: {
|
||||||
|
keyType: "ecdsa",
|
||||||
|
},
|
||||||
} as any
|
} as any
|
||||||
}
|
}
|
||||||
onSubmit={onSubmit}
|
onSubmit={onSubmit}
|
||||||
@@ -142,6 +145,30 @@ const HTTPCertificateModal = EasyModal.create(({ visible, remove }: InnerModalPr
|
|||||||
setTestResults(null);
|
setTestResults(null);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
<Field name="meta.keyType">
|
||||||
|
{({ field }: any) => (
|
||||||
|
<div className="mb-3">
|
||||||
|
<label htmlFor="keyType" className="form-label">
|
||||||
|
<T id="certificates.key-type" />
|
||||||
|
</label>
|
||||||
|
<select
|
||||||
|
id="keyType"
|
||||||
|
className="form-select"
|
||||||
|
{...field}
|
||||||
|
>
|
||||||
|
<option value="rsa">
|
||||||
|
<T id="certificates.key-type-rsa" />
|
||||||
|
</option>
|
||||||
|
<option value="ecdsa">
|
||||||
|
<T id="certificates.key-type-ecdsa" />
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
<small className="form-text text-muted">
|
||||||
|
<T id="certificates.key-type-description" />
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Field>
|
||||||
</div>
|
</div>
|
||||||
{testResults ? (
|
{testResults ? (
|
||||||
<div className="card-footer">
|
<div className="card-footer">
|
||||||
|
|||||||
Reference in New Issue
Block a user