mirror of
https://github.com/ehang-io/nps.git
synced 2025-07-02 04:00:42 +00:00
37 lines
949 B
Go
37 lines
949 B
Go
package process
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"ehang.io/nps/core/action"
|
|
"ehang.io/nps/lib/enet"
|
|
)
|
|
|
|
type HttpsProxyProcess struct {
|
|
CertFile string `json:"cert_file" required:"true" placeholder:"/var/cert/cert.pem" zh_name:"cert文件路径"`
|
|
KeyFile string `json:"key_file" required:"true" placeholder:"/var/cert/key.pem" zh_name:"key文件路径"`
|
|
config *tls.Config
|
|
HttpProxyProcess
|
|
}
|
|
|
|
func (hpp *HttpsProxyProcess) GetName() string {
|
|
return "https_proxy"
|
|
}
|
|
|
|
func (hpp *HttpsProxyProcess) GetZhName() string {
|
|
return "https代理"
|
|
}
|
|
|
|
func (hpp *HttpsProxyProcess) Init(ac action.Action) error {
|
|
cer, err := tls.LoadX509KeyPair(hpp.CertFile, hpp.KeyFile)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
hpp.config = &tls.Config{Certificates: []tls.Certificate{cer}}
|
|
hpp.ac = ac
|
|
return nil
|
|
}
|
|
|
|
func (hpp *HttpsProxyProcess) ProcessConn(c enet.Conn) (bool, error) {
|
|
return hpp.HttpProxyProcess.ProcessConn(enet.NewReaderConn(tls.Server(c, hpp.config)))
|
|
}
|