MCPcopy Index your code
hub / github.com/1Panel-dev/1Panel / applySSL

Function applySSL

agent/app/service/website_utils.go:819–966  ·  view source on GitHub ↗
(website *model.Website, websiteSSL model.WebsiteSSL, req request.WebsiteHTTPSOp)

Source from the content-addressed store, hash-verified

817}
818
819func applySSL(website *model.Website, websiteSSL model.WebsiteSSL, req request.WebsiteHTTPSOp) error {
820 nginxFull, err := getNginxFull(website)
821 if err != nil {
822 return nil
823 }
824 domains, err := websiteDomainRepo.GetBy(websiteDomainRepo.WithWebsiteId(website.ID))
825 if err != nil {
826 return nil
827 }
828 httpPorts := make(map[int]struct{})
829 httpsPorts := make(map[int]struct{})
830 sslPort := 0
831
832 hasDefaultPort := false
833 for _, domain := range domains {
834 if domain.Port == nginxFull.Install.HttpPort {
835 hasDefaultPort = true
836 }
837 if domain.SSL {
838 httpsPorts[domain.Port] = struct{}{}
839 } else {
840 httpPorts[domain.Port] = struct{}{}
841 }
842 }
843 if hasDefaultPort {
844 httpsPorts[nginxFull.Install.HttpsPort] = struct{}{}
845 }
846 if len(httpsPorts) == 0 {
847 for port := range httpPorts {
848 httpsPorts[port] = struct{}{}
849 }
850 }
851 config := nginxFull.SiteConfig.Config
852 server := config.FindServers()[0]
853
854 defaultHttpPort := strconv.Itoa(nginxFull.Install.HttpPort)
855 defaultHttpPortIPV6 := "[::]:" + defaultHttpPort
856
857 for port := range httpsPorts {
858 sslPort = port
859 portStr := strconv.Itoa(port)
860 server.RemoveListenByBind(portStr)
861 server.RemoveListenByBind("[::]:" + portStr)
862 setListen(server, portStr, website.IPV6, req.Http3, website.DefaultServer, true)
863 }
864
865 server.UpdateDirective("http2", []string{"on"})
866
867 switch req.HttpConfig {
868 case constant.HTTPSOnly:
869 server.RemoveListenByBind(defaultHttpPort)
870 server.RemoveListenByBind(defaultHttpPortIPV6)
871 server.RemoveDirective("if", []string{"($scheme"})
872 case constant.HTTPToHTTPS:
873 if hasDefaultPort {
874 server.UpdateListen(defaultHttpPort, website.DefaultServer)
875 if website.IPV6 {
876 server.UpdateListen(defaultHttpPortIPV6, website.DefaultServer)

Callers 2

CreateWebsiteMethod · 0.85
OpWebsiteHTTPSMethod · 0.85

Calls 14

getNginxFullFunction · 0.85
setListenFunction · 0.85
createPemFileFunction · 0.85
FindServersMethod · 0.80
RemoveListenByBindMethod · 0.80
UpdateListenMethod · 0.80
AddHTTP2HTTPSMethod · 0.80
RemoveListenMethod · 0.80
updateNginxConfigFunction · 0.70
GetByMethod · 0.65
WithWebsiteIdMethod · 0.65

Tested by

no test coverage detected