diff --git a/backend/app/dto/request/website_ssl.go b/backend/app/dto/request/website_ssl.go index e605bff86..bde9da7b5 100644 --- a/backend/app/dto/request/website_ssl.go +++ b/backend/app/dto/request/website_ssl.go @@ -77,6 +77,7 @@ type WebsiteSSLUpload struct { CertificatePath string `json:"certificatePath"` Type string `json:"type" validate:"required,oneof=paste local"` SSLID uint `json:"sslID"` + Description string `json:"description"` } type WebsiteCASearch struct { @@ -95,16 +96,17 @@ type WebsiteCACreate struct { } type WebsiteCAObtain struct { - ID uint `json:"id" validate:"required"` - Domains string `json:"domains" validate:"required"` - KeyType string `json:"keyType" validate:"required,oneof=P256 P384 2048 3072 4096 8192"` - Time int `json:"time" validate:"required"` - Unit string `json:"unit" validate:"required"` - PushDir bool `json:"pushDir"` - Dir string `json:"dir"` - AutoRenew bool `json:"autoRenew"` - Renew bool `json:"renew"` - SSLID uint `json:"sslID"` + ID uint `json:"id" validate:"required"` + Domains string `json:"domains" validate:"required"` + KeyType string `json:"keyType" validate:"required,oneof=P256 P384 2048 3072 4096 8192"` + Time int `json:"time" validate:"required"` + Unit string `json:"unit" validate:"required"` + PushDir bool `json:"pushDir"` + Dir string `json:"dir"` + AutoRenew bool `json:"autoRenew"` + Renew bool `json:"renew"` + SSLID uint `json:"sslID"` + Description string `json:"description"` } type WebsiteCARenew struct { diff --git a/backend/app/service/website_ca.go b/backend/app/service/website_ca.go index d72b5d447..4e56446a7 100644 --- a/backend/app/service/website_ca.go +++ b/backend/app/service/website_ca.go @@ -213,11 +213,12 @@ func (w WebsiteCAService) ObtainSSL(req request.WebsiteCAObtain) (*model.Website return nil, err } websiteSSL = &model.WebsiteSSL{ - Provider: constant.SelfSigned, - KeyType: req.KeyType, - PushDir: req.PushDir, - CaID: ca.ID, - AutoRenew: req.AutoRenew, + Provider: constant.SelfSigned, + KeyType: req.KeyType, + PushDir: req.PushDir, + CaID: ca.ID, + AutoRenew: req.AutoRenew, + Description: req.Description, } if req.PushDir { if !files.NewFileOp().Stat(req.Dir) { diff --git a/backend/app/service/website_ssl.go b/backend/app/service/website_ssl.go index 4cddcec2d..31fd16a0b 100644 --- a/backend/app/service/website_ssl.go +++ b/backend/app/service/website_ssl.go @@ -376,7 +376,8 @@ func (w WebsiteSSLService) Update(update request.WebsiteSSLUpdate) error { func (w WebsiteSSLService) Upload(req request.WebsiteSSLUpload) error { websiteSSL := &model.WebsiteSSL{ - Provider: constant.Manual, + Provider: constant.Manual, + Description: req.Description, } var err error if req.SSLID > 0 { @@ -384,6 +385,7 @@ func (w WebsiteSSLService) Upload(req request.WebsiteSSLUpload) error { if err != nil { return err } + websiteSSL.Description = req.Description } if req.Type == "local" { fileOp := files.NewFileOp() diff --git a/backend/init/migration/migrations/v_1_9.go b/backend/init/migration/migrations/v_1_9.go index 53c898ad3..ace59f6b3 100644 --- a/backend/init/migration/migrations/v_1_9.go +++ b/backend/init/migration/migrations/v_1_9.go @@ -19,7 +19,7 @@ var UpdateAcmeAccount = &gormigrate.Migration{ } var AddWebsiteCA = &gormigrate.Migration{ - ID: "20231125-add-website-ca", + ID: "20231130-add-website-ca", Migrate: func(tx *gorm.DB) error { if err := tx.AutoMigrate(&model.WebsiteCA{}); err != nil { return err @@ -59,7 +59,7 @@ var AddDatabaseSSL = &gormigrate.Migration{ } var AddDefaultCA = &gormigrate.Migration{ - ID: "20231129-add-default-ca", + ID: "20231130-add-default-ca", Migrate: func(tx *gorm.DB) error { caService := service.NewIWebsiteCAService() if _, err := caService.Create(request.WebsiteCACreate{ diff --git a/frontend/src/api/interface/website.ts b/frontend/src/api/interface/website.ts index bf9e9247f..8e1f08d11 100644 --- a/frontend/src/api/interface/website.ts +++ b/frontend/src/api/interface/website.ts @@ -497,6 +497,7 @@ export namespace Website { unit: string; pushDir: boolean; dir: string; + description: string; } export interface RenewSSLByCA { diff --git a/frontend/src/views/website/ssl/ca/detail/index.vue b/frontend/src/views/website/ssl/ca/detail/index.vue index 6a7f5aa6d..903c02400 100644 --- a/frontend/src/views/website/ssl/ca/detail/index.vue +++ b/frontend/src/views/website/ssl/ca/detail/index.vue @@ -5,7 +5,7 @@
- {{ $t('ssl.msg') }} + {{ $t('ssl.organizationDetail') }} csr {{ $t('ssl.key') }} diff --git a/frontend/src/views/website/ssl/ca/obtain/index.vue b/frontend/src/views/website/ssl/ca/obtain/index.vue index c17659c94..4ea61d0dd 100644 --- a/frontend/src/views/website/ssl/ca/obtain/index.vue +++ b/frontend/src/views/website/ssl/ca/obtain/index.vue @@ -17,6 +17,9 @@ :placeholder="$t('ssl.domainHelper')" > + + + ({ pushDir: false, dir: '', autoRenew: true, + description: '', }); const obtain = ref(initData()); diff --git a/frontend/src/views/website/ssl/index.vue b/frontend/src/views/website/ssl/index.vue index 0688e207a..2c8cdacbe 100644 --- a/frontend/src/views/website/ssl/index.vue +++ b/frontend/src/views/website/ssl/index.vue @@ -236,7 +236,7 @@ const buttons = [ { label: i18n.global.t('commons.operate.update'), click: function (row: Website.SSLDTO) { - sslUploadRef.value.acceptParams(row.id); + sslUploadRef.value.acceptParams(row); }, show: function (row: Website.SSLDTO) { return row.provider == 'manual'; diff --git a/frontend/src/views/website/ssl/upload/index.vue b/frontend/src/views/website/ssl/upload/index.vue index 667831d49..4c73a20bd 100644 --- a/frontend/src/views/website/ssl/upload/index.vue +++ b/frontend/src/views/website/ssl/upload/index.vue @@ -36,6 +36,9 @@
+ + + @@ -58,6 +61,7 @@ import i18n from '@/lang'; import { FormInstance } from 'element-plus'; import { ref } from 'vue'; import { MsgSuccess } from '@/utils/message'; +import { Website } from '@/api/interface/website'; const open = ref(false); const loading = ref(false); @@ -77,6 +81,7 @@ const initData = () => ({ certificatePath: '', type: 'paste', sslID: 0, + description: '', }); const ssl = ref(initData()); @@ -91,10 +96,11 @@ const resetForm = () => { ssl.value = initData(); }; -const acceptParams = (id: number) => { +const acceptParams = (websiteSSL: Website.SSLDTO) => { resetForm(); - if (id && id > 0) { - ssl.value.sslID = id; + if (websiteSSL && websiteSSL.id > 0) { + ssl.value.sslID = websiteSSL.id; + ssl.value.description = websiteSSL.description; } open.value = true; }; diff --git a/frontend/src/views/website/website/config/basic/https/index.vue b/frontend/src/views/website/website/config/basic/https/index.vue index eb57ab2d6..1bc374c3a 100644 --- a/frontend/src/views/website/website/config/basic/https/index.vue +++ b/frontend/src/views/website/website/config/basic/https/index.vue @@ -91,7 +91,7 @@ - + {{ websiteSSL.primaryDomain }} @@ -110,6 +110,9 @@ {{ dateFormatSimple(websiteSSL.expireDate) }} + + {{ websiteSSL.description }} + {{ $t('website.SSLProConfig') }}