Skip to content

Commit 3437d62

Browse files
feat: Website SSL DNS Type support WestCN (#8305)
1 parent dc88083 commit 3437d62

File tree

13 files changed

+38
-1
lines changed

13 files changed

+38
-1
lines changed

Diff for: backend/utils/ssl/client.go

+11
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package ssl
33
import (
44
"crypto"
55
"encoding/json"
6+
"github.com/go-acme/lego/v4/providers/dns/westcn"
67
"os"
78
"strings"
89
"time"
@@ -85,6 +86,7 @@ const (
8586
TencentCloud DnsType = "TencentCloud"
8687
HuaweiCloud DnsType = "HuaweiCloud"
8788
RainYun DnsType = "RainYun"
89+
WestCN DnsType = "WestCN"
8890
)
8991

9092
type DNSParam struct {
@@ -103,6 +105,7 @@ type DNSParam struct {
103105
AuthID string `json:"authID"`
104106
SubAuthID string `json:"subAuthID"`
105107
AuthPassword string `json:"authPassword"`
108+
Username string `json:"username"`
106109
}
107110

108111
var (
@@ -233,6 +236,14 @@ func (c *AcmeClient) UseDns(dnsType DnsType, params string, websiteSSL model.Web
233236
rainyunConfig.PollingInterval = pollingInterval
234237
rainyunConfig.TTL = ttl
235238
p, err = rainyun.NewDNSProviderConfig(rainyunConfig)
239+
case WestCN:
240+
westcnConfig := westcn.NewDefaultConfig()
241+
westcnConfig.Username = param.Username
242+
westcnConfig.Password = param.Password
243+
westcnConfig.PropagationTimeout = propagationTimeout
244+
westcnConfig.PollingInterval = pollingInterval
245+
westcnConfig.TTL = ttl
246+
p, err = westcn.NewDNSProviderConfig(westcnConfig)
236247
}
237248
if err != nil {
238249
return err

Diff for: frontend/src/global/mimetype.ts

+4
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,10 @@ export const DNSTypes = [
212212
label: i18n.global.t('website.rainyun'),
213213
value: 'RainYun',
214214
},
215+
{
216+
label: i18n.global.t('website.westCN'),
217+
value: 'WestCN',
218+
},
215219
];
216220

217221
export const Fields = [

Diff for: frontend/src/lang/modules/en.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2261,6 +2261,7 @@ const message = {
22612261
"When the reverse proxy backend is HTTPS, you might need to set the origin SNI. Please refer to the CDN service provider's documentation for details.",
22622262
huaweicloud: 'Huawei Cloud',
22632263
rainyun: 'Rain Yun',
2264+
westCN: 'West CN',
22642265
},
22652266
php: {
22662267
short_open_tag: 'Short tag support',

Diff for: frontend/src/lang/modules/ja.ts

+2
Original file line numberDiff line numberDiff line change
@@ -2233,6 +2233,8 @@ const message = {
22332233
sniHelper:
22342234
'逆プロキシバックエンドがHTTPSの場合、Origin SNIを設定する必要がある場合があります。詳細については、CDNサービスプロバイダーのドキュメントを参照してください。',
22352235
huaweicloud: 'huaweiCloud',
2236+
rainyun: 'Rain Yun',
2237+
westCN: 'West CN',
22362238
},
22372239
php: {
22382240
short_open_tag: '短いタグサポート',

Diff for: frontend/src/lang/modules/ko.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2195,6 +2195,7 @@ const message = {
21952195
'역방향 프록시 백엔드가 HTTPS 인 경우 원본 SNI 를 설정해야 할 수 있습니다. 자세한 내용은 CDN 서비스 제공자의 문서를 참조하세요.',
21962196
huaweicloud: '화웨이 클라우드',
21972197
rainyun: '레인윤',
2198+
westCN: 'West CN',
21982199
},
21992200
php: {
22002201
short_open_tag: '짧은 태그 지원',

Diff for: frontend/src/lang/modules/ms.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2284,6 +2284,7 @@ const message = {
22842284
'Apabila backend proksi terbalik adalah HTTPS, anda mungkin perlu menetapkan sumber SNI. Sila rujuk dokumentasi penyedia perkhidmatan CDN untuk butiran.',
22852285
huaweicloud: 'Huawei Cloud',
22862286
rainyun: 'Rain Yun',
2287+
westCN: 'West CN',
22872288
},
22882289
php: {
22892290
short_open_tag: 'Sokongan tag pendek',

Diff for: frontend/src/lang/modules/pt-br.ts

+2
Original file line numberDiff line numberDiff line change
@@ -2280,6 +2280,8 @@ const message = {
22802280
sniHelper:
22812281
'Quando o proxy reverso de backend for HTTPS, você pode precisar configurar o SNI de origem. Consulte a documentação do provedor de serviços CDN para mais detalhes.',
22822282
huaweicloud: 'Huawei Cloud',
2283+
rainyun: 'Rain Yun',
2284+
westCN: 'West CN',
22832285
},
22842286
php: {
22852287
short_open_tag: 'Suporte para short tags',

Diff for: frontend/src/lang/modules/ru.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2281,6 +2281,7 @@ const message = {
22812281
'Когда бэкенд обратного прокси использует HTTPS, может потребоваться установить origin SNI. Подробности см. в документации провайдера CDN.',
22822282
huaweicloud: 'Huawei Cloud',
22832283
rainyun: 'Rain Yun',
2284+
westCN: 'West CN',
22842285
},
22852286
php: {
22862287
short_open_tag: 'Поддержка коротких тегов',

Diff for: frontend/src/lang/modules/tw.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2116,6 +2116,7 @@ const message = {
21162116
sniHelper: '反代後端為 https 的時候可能需要設定回源 SNI,具體需要看 CDN 服務商文件',
21172117
huaweicloud: '華為雲',
21182118
rainyun: '雨雲',
2119+
westCN: '西部數據',
21192120
},
21202121
php: {
21212122
short_open_tag: '短標籤支援',

Diff for: frontend/src/lang/modules/zh.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2117,6 +2117,7 @@ const message = {
21172117
sniHelper: '反代后端为 https 的时候可能需要设置回源 SNI,具体需要看 CDN 服务商文档',
21182118
huaweicloud: '华为云',
21192119
rainyun: '雨云',
2120+
westCN: '西部数码',
21202121
},
21212122
php: {
21222123
short_open_tag: '短标签支持',

Diff for: frontend/src/views/website/ssl/dns-account/create/index.vue

+10-1
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,14 @@
130130
<el-input v-model.trim="account.authorization['token']"></el-input>
131131
</el-form-item>
132132
</div>
133+
<div v-if="account.type === 'WestCN'">
134+
<el-form-item label="Username" prop="authorization.username">
135+
<el-input v-model.trim="account.authorization['username']"></el-input>
136+
</el-form-item>
137+
<el-form-item label="Password" prop="authorization.password">
138+
<el-input v-model.trim="account.authorization['password']"></el-input>
139+
</el-form-item>
140+
</div>
133141
</el-form>
134142
</el-col>
135143
</el-row>
@@ -181,6 +189,7 @@ const rules = ref<any>({
181189
email: [Rules.email],
182190
password: [Rules.requiredInput],
183191
authPassword: [Rules.requiredInput],
192+
username: [Rules.requiredInput],
184193
},
185194
});
186195
const account = ref({
@@ -230,7 +239,7 @@ const submit = async (formEl: FormInstance | undefined) => {
230239
return;
231240
}
232241
if (account.value.type === 'ClouDNS') {
233-
if (!account.value.authorization.authID && !account.value.authorization.subAuthID) {
242+
if (!account.value.authorization['authID'] && !account.value.authorization['subAuthID']) {
234243
MsgError('Please input Auth ID or Sub Auth ID');
235244
return;
236245
}

Diff for: go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ require (
198198
github.com/ncruces/go-strftime v0.1.9 // indirect
199199
github.com/nrdcg/dnspod-go v0.4.0 // indirect
200200
github.com/nrdcg/freemyip v0.3.0 // indirect
201+
github.com/nrdcg/mailinabox v0.2.0 // indirect
201202
github.com/nrdcg/namesilo v0.2.1 // indirect
202203
github.com/nwaples/rardecode/v2 v2.0.0-beta.2 // indirect
203204
github.com/opencontainers/go-digest v1.0.0 // indirect

Diff for: go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,8 @@ github.com/nrdcg/dnspod-go v0.4.0 h1:c/jn1mLZNKF3/osJ6mz3QPxTudvPArXTjpkmYj0uK6U
760760
github.com/nrdcg/dnspod-go v0.4.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ=
761761
github.com/nrdcg/freemyip v0.3.0 h1:0D2rXgvLwe2RRaVIjyUcQ4S26+cIS2iFwnhzDsEuuwc=
762762
github.com/nrdcg/freemyip v0.3.0/go.mod h1:c1PscDvA0ukBF0dwelU/IwOakNKnVxetpAQ863RMJoM=
763+
github.com/nrdcg/mailinabox v0.2.0 h1:IKq8mfKiVwNW2hQii/ng1dJ4yYMMv3HAP3fMFIq2CFk=
764+
github.com/nrdcg/mailinabox v0.2.0/go.mod h1:0yxqeYOiGyxAu7Sb94eMxHPIOsPYXAjTeA9ZhePhGnc=
763765
github.com/nrdcg/namesilo v0.2.1 h1:kLjCjsufdW/IlC+iSfAqj0iQGgKjlbUUeDJio5Y6eMg=
764766
github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw=
765767
github.com/nwaples/rardecode/v2 v2.0.0-beta.2 h1:e3mzJFJs4k83GXBEiTaQ5HgSc/kOK8q0rDaRO0MPaOk=

0 commit comments

Comments
 (0)