| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package admin
- import (
- "encoding/json"
- "fmt"
- "io"
- "net/http"
- "os"
- "github.com/bjdgyc/anylink/base"
- "github.com/bjdgyc/anylink/dbdata"
- )
- func CustomCert(w http.ResponseWriter, r *http.Request) {
- cert, _, err := r.FormFile("cert")
- if err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- key, _, err := r.FormFile("key")
- if err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- certFile, err := os.OpenFile(base.Cfg.CertFile, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600)
- if err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- defer certFile.Close()
- if _, err := io.Copy(certFile, cert); err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- keyFile, err := os.OpenFile(base.Cfg.CertKey, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600)
- if err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- defer keyFile.Close()
- if _, err := io.Copy(keyFile, key); err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- if tlscert, _, err := dbdata.ParseCert(); err != nil {
- RespError(w, RespInternalErr, fmt.Sprintf("证书不合法,请重新上传:%v", err))
- return
- } else {
- dbdata.LoadCertificate(tlscert)
- }
- RespSucess(w, "上传成功")
- }
- func GetCertSetting(w http.ResponseWriter, r *http.Request) {
- sess := dbdata.GetXdb().NewSession()
- defer sess.Close()
- data := &dbdata.SettingLetsEncrypt{}
- if err := dbdata.SettingGet(data); err != nil {
- dbdata.SettingSessAdd(sess, data)
- RespError(w, RespInternalErr, err)
- }
- userData := &dbdata.LegoUserData{}
- if err := dbdata.SettingGet(userData); err != nil {
- dbdata.SettingSessAdd(sess, userData)
- }
- RespSucess(w, data)
- }
- func CreatCert(w http.ResponseWriter, r *http.Request) {
- if err := r.ParseForm(); err != nil {
- http.Error(w, err.Error(), http.StatusBadRequest)
- return
- }
- body, err := io.ReadAll(r.Body)
- if err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- defer r.Body.Close()
- config := &dbdata.SettingLetsEncrypt{}
- if err := json.Unmarshal(body, config); err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- if err := dbdata.SettingSet(config); err != nil {
- RespError(w, RespInternalErr, err)
- return
- }
- client := dbdata.LeGoClient{}
- if err := client.NewClient(config); err != nil {
- base.Error(err)
- RespError(w, RespInternalErr, fmt.Sprintf("获取证书失败:%v", err))
- return
- }
- if err := client.GetCert(config.Domain); err != nil {
- base.Error(err)
- RespError(w, RespInternalErr, fmt.Sprintf("获取证书失败:%v", err))
- return
- }
- RespSucess(w, "生成证书成功")
- }
|