mxs 3 тижнів тому
батько
коміт
6ef0ad0cea
9 змінених файлів з 204 додано та 10 видалено
  1. 2 1
      .gitignore
  2. 0 3
      go.mod
  3. 73 0
      httpclient/httpclient.go
  4. 32 0
      httpclient/keys/ca.crt
  5. 32 0
      httpclient/keys/client.crt
  6. 52 0
      httpclient/keys/client.key
  7. 4 2
      main.go
  8. 3 1
      qianlima.go
  9. 6 3
      server.go

+ 2 - 1
.gitignore

@@ -11,4 +11,5 @@ bin
 go.sum
 spider.dat
 go.mod
-spider_attaches/
+spider_attaches/
+special/

+ 0 - 3
go.mod

@@ -81,6 +81,3 @@ require (
 	golang.org/x/tools v0.28.0 // indirect
 	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
 )
-
-// replace github.com/wailsapp/wails/v2 v2.9.1 => /Users/taozhang/go/pkg/mod
-replace jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240202055658-e2ef72e18b40 => ../common_utils

+ 73 - 0
httpclient/httpclient.go

@@ -0,0 +1,73 @@
+package httpclient
+
+import (
+	"crypto/tls"
+	"crypto/x509"
+	"embed"
+	"errors"
+	"fmt"
+	"log"
+	"net/http"
+)
+
+var (
+	//go:embed keys
+	keys embed.FS
+	//
+	tlsConfig *tls.Config
+	//是否使用HTTPS
+	UseHttps bool = true
+)
+
+// inic
+func init() {
+	//tls
+	clientCrt, err := keys.ReadFile("keys/client.crt")
+	clientKey, err := keys.ReadFile("keys/client.key")
+	fmt.Println("---------------", err)
+	// 加载客户端证书和密钥
+	clientCertPair, err := tls.X509KeyPair(clientCrt, clientKey)
+	if err != nil {
+		log.Fatalf("加载客户端证书和密钥失败: %v", err)
+	}
+	// 加载CA证书
+	caCertPool, err := loadCA()
+	if err != nil {
+		log.Fatalf("加载CA证书失败: %v", err)
+	}
+	// 配置TLS配置
+	tlsConfig = &tls.Config{
+		Certificates: []tls.Certificate{clientCertPair},
+		RootCAs:      caCertPool,
+	}
+}
+
+// 加载CA证书
+func loadCA() (*x509.CertPool, error) {
+	caCert, err := keys.ReadFile("keys/ca.crt")
+	if err != nil {
+		return nil, err
+	}
+
+	caCertPool := x509.NewCertPool()
+	if !caCertPool.AppendCertsFromPEM(caCert) {
+		return nil, errors.New("无法添加CA证书到证书池")
+	}
+
+	return caCertPool, nil
+}
+
+func HttpClient() *http.Client {
+	// 创建HTTP客户端
+	var transport *http.Transport
+	if UseHttps {
+		transport = &http.Transport{
+			TLSClientConfig: tlsConfig,
+		}
+	} else {
+		transport = &http.Transport{}
+	}
+	return &http.Client{
+		Transport: transport,
+	}
+}

+ 32 - 0
httpclient/keys/ca.crt

@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFdTCCA10CFD88ikbzq6OJOHUXiw26JuE06gIXMA0GCSqGSIb3DQEBCwUAMHcx
+CzAJBgNVBAYTAkNOMQ4wDAYDVQQIDAVIZU5hbjESMBAGA1UEBwwJWmhlbmdaaG91
+MQ8wDQYDVQQKDAZqaWFueXUxDDAKBgNVBAsMA2RldjElMCMGA1UEAwwcanNzcGlk
+ZXIuanlkZXYuamlhbnl1MzYwLmNvbTAeFw0yNTA3MTEwOTEyMDdaFw0zNTA3MDkw
+OTEyMDdaMHcxCzAJBgNVBAYTAkNOMQ4wDAYDVQQIDAVIZU5hbjESMBAGA1UEBwwJ
+WmhlbmdaaG91MQ8wDQYDVQQKDAZqaWFueXUxDDAKBgNVBAsMA2RldjElMCMGA1UE
+AwwcanNzcGlkZXIuanlkZXYuamlhbnl1MzYwLmNvbTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAIa7zFjbp/SDhfp9nKboxsVUYXP69loJowghyjpi6Pvl
+hdUR4YgBQawgsXeeF07NXGpMjPr2uQwwaU4w2pFfqBNmbBdueNer52KrweRaCxxJ
+mKPnIEUCMF/M1McEGhpYJyBtBWYvh3IhO3XaNla1xWl8kQ8SLkJg7t0beWiO4+fz
+KRRVsjHCpeUwNAxbVwho4Z7d0bCfM2A/a6m1zqX2FXYbMPHxnpWhjYaq70/wnYOD
+3oUmIOpi7okNcLG12m752pzSDBlzbFsMTZS4YSISzAazwdipS4KXltCpRnpn9xpi
+7oxUfwjduHTRuErual/L/Ugn1qOApvn89c6VMKcbIBEUK0SjWWt/QILO6VxDT81v
+zS2MoiWhA5sEiolo+6EEyV7d4u6jSzUAPj3FekLgandPvzrpF5JbmtvsLTiXy4Tn
+4KGTVNwJRVqKljQ+LqDqRx/3MZzXeDiE2+c9d2JSjreUOpyhf/d6imQhvR3hAOAi
+ffSXdUE4sZ48kZ3Tfl/9DT920O059hK4zoHCPI+h6Bkvg5SFNM0Ufytl7c7qyXfN
+/pCju+qfcguDO+ssjDuSJUrfNIkiocXhKzUom+pk7JHjq0byUeCrz0YzbB7F6zPw
+m78am+Pa6bwO7g2p3IN3klN0HOLkuTJudg05xSRGJ6ikr8Y12o2cSMI7zwM6R1zj
+AgMBAAEwDQYJKoZIhvcNAQELBQADggIBACMw7GwmjOlPHtvEzzXRciPfPG+l5/Eq
+kcf5Wg9OludsAL+rcOWPRsO9YZXcXzqJ+j7M+cxPd7ZETiQodbfQcjq+TCfIPFFR
+HFH/UlKMnJg25tJZ4tcSz86Wg1yG4sI7JDqgTqPiiWI5TKqcFuBQYdYLcANQhg/8
+KKXu0FJCd4xg4csOW+IxcHG5QllXTHF27+a09FuBUDG1bc0h455hpV1OZwoSWa8h
+W4pdPf3HJ9ltg7P0kLTMCCS367PqW5BP5+HaU5plHhZn8nCFf+h8cmGUVsRh4Mhm
+G4lR8Rnd2N8PN0UWd0HXJM2arXH2kfS7X2x3/7vdejkWNV6fLn1/YQc/cmJLCHST
+JN+ZX70T5REWODoxQ/h+RZu/OLNYNnS1+2CGnz+ude36Vp6rB27jFDsd1Ej0/qaN
+0hQ0ZpGYE4RACKvU1EXfOpdqwEl0tFFV19RWZGbPCXdSEUC2R6xm9h+oGixCM7b/
+kGuXsjnGGAaGp8TkLSkJqz+9r6LtmclG03BdS9EYG/kqci9shDM8QQxa/bk13M6Z
+PrnaquVfJQPQqn90swr9hnXHLUgo+1M4tUYb38/KBBoG9gBvJ7bVjCqCg0KESqBu
+FjoYtoK44zem1mH75RCgwCAWWeU9bipg4A0HRz+ApeAltbtT9Y6sQ7P37WdCO2oW
+hlagSHR2Zuho
+-----END CERTIFICATE-----

+ 32 - 0
httpclient/keys/client.crt

@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFdTCCA10CFAeMJT+gbItYYjZjf5ErlC9zD04wMA0GCSqGSIb3DQEBCwUAMHcx
+CzAJBgNVBAYTAkNOMQ4wDAYDVQQIDAVIZU5hbjESMBAGA1UEBwwJWmhlbmdaaG91
+MQ8wDQYDVQQKDAZqaWFueXUxDDAKBgNVBAsMA2RldjElMCMGA1UEAwwcanNzcGlk
+ZXIuanlkZXYuamlhbnl1MzYwLmNvbTAeFw0yNTA3MTQwMzU1NTVaFw0yNTA3MTUw
+MzU1NTVaMHcxCzAJBgNVBAYTAkNOMQ4wDAYDVQQIDAVIZU5hbjESMBAGA1UEBwwJ
+WmhlbmdaaG91MQ8wDQYDVQQKDAZqaWFueXUxDDAKBgNVBAsMA2RldjElMCMGA1UE
+AwwcanNzcGlkZXIuanlkZXYuamlhbnl1MzYwLmNvbTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAJpyjrWpfCyL5J1N54sm+nZfT6f2dm+96W/gQh6lYh4B
+Bpb9/lu4sHjxxqt4JoLCQd/KBdVCBO1wKruUNkEj96i1sTG5MEfoqDi+nq8Vnuo0
+I421qbytSCOwRYWYFbmFNmGwR17t01qXFhzxkE6jhepQ2kQAFGk29tETrZ7Uirnr
+cuOtt1As3e9Bn3qBvPe8nc3sjHpCpKmyp6RUO2v0/Y739ZYOvJhCNPLowDspfF5P
+X80L83seUxBl5q2Hh6cwgHZmvo5Ynogjhs/B/8gfsvgeWAv6gbms/tqSWWdRGsGf
+jCRSZ4zz2MsyN13jqtXtjTw7HSr/ZbI2et/0LfKm7+g4bfaDUvpKibiDGn/ujxY3
+V1utmHZ86YRJdgfen8EonwVSTYHQR9ZXRizaHkZFI0WwpovI9gwDnxsewDVRZ0kn
++DE7kU+YeCYH3ZleAdvSU+YJucsEvdIYfD5lzh6KpO68i2vd9OcjGuBZiDwLJfaH
+RiKzxnDrNdzep5jUcLJ2gaV+HgTs1wqQDFOp6JwRLQnMS9ddzXJU/ibxDxxFA8uQ
+bZ1fQc4WB5Dp6GMqMuW0H/Eo0oBNMgTXw2lQdG1VRusj/uuQe7K0vXL5FSaChod2
+pkQFvAC7kFukDoIViQAeg6H9Zqc9W/k/sGqyc/TfBoh/Vb/IG7JBJX6zOcTPZ2tb
+AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAH49idEj1Qn2kBDGHv5kYToBuJ0tkvHU
+IPgzT04jATX+8wsZrgENMP0k0O2YhtZbkj3zlchadRCswnmiXxj65aFQAUxzfdmY
+2LcQOu215p+P4lIMPdBd5tF7/WxYHebrzBG+qO+LyGCK4bcrRVXO0ZPHYegYqCbw
+5JfdxrnJOYfPiPow/aCiCY+ktgJcTd/gl5HESZd1GxpQ8+IpYsZKri5heqppQYda
+9SJyoiAl7zpylj9DQkarRQFoDJzFtF4WaVAYOelbN8gbh29dO9j7rKUlcCX3Y73u
++onnpup6OMbW6C3iJmocenGo3G63Kt+T29YAHvFI8T7pSA2et4mD+/LTySRCKtmS
+Ou2oX66Cs35nWlAKGgcE0w+b5NwX0wk4BvHqXqNFUSmZ8VfiZGu0EL9Y7KJ7/naH
+4q6HmdW9U4tcSeSVhJXJjswu4AACUHCzxN7w9Hg5uDd8wurNoOpa3zMFR/s/B9lp
+9tYQZTddhwxOePcTXDdh+M+44lpEPKFfR0qbcEqazq5F//cMehsHDIu7dYiDgomR
+Dt6L5fXrNanTkMDfL13HAMzCiDhS3w8uTKjAEUg5T/Pckwx5G/32OjErZq/UqAtX
+32PJOHO7NXhYXMM1o0sgcr+hSBDtGYAojPK9GT1n8eO76RIorkNMfUaPnLkEAVZ/
+MID2rCTU1yfD
+-----END CERTIFICATE-----

+ 52 - 0
httpclient/keys/client.key

@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+RKaGDZkEM3j+tf/YeQ/KQ+1vHahrTA==
+-----END PRIVATE KEY-----

+ 4 - 2
main.go

@@ -34,8 +34,10 @@ var (
 	//重点网站和正式环境
 	isOnly4MainSite             = "false"
 	browserDisableLoadResources = "ws://;wss://;.tof;.woff;.ico;.mp4;.zip;.rar;.exe;"
-	serverAddress               = "http://visualizeld.spdata.jianyu360.com/%s" //正式环境
-	//serverAddress = "http://127.0.0.1:8091/%s" //正式环境
+	//serverAddress               = "http://visualizeld.spdata.jianyu360.com/%s" //正式环境
+	//serverAddress = "http://visualizepx.spdata.jianyu360.com/%s" //培训环境
+	serverAddress = "https://jsspider.jydev.jianyu360.com:19092/%s" //含证书版本
+	//serverAddress = "https://127.0.0.1:8091/%s" //测试环境
 
 	//验证码服务
 	serverCodeTimeOut               int64 = 15

+ 3 - 1
qianlima.go

@@ -11,6 +11,7 @@ import (
 	"net/http"
 	"os"
 	"spider_creator/backend/script"
+	hc "spider_creator/httpclient"
 	"time"
 )
 
@@ -192,7 +193,8 @@ func getData(file *excelize.File, recordId, exportStype, from string, result *[]
 	req.Header.Set("Content-Type", "application/json")
 
 	// 发送HTTP请求并获取响应
-	client := &http.Client{}
+	//client := &http.Client{}
+	client := hc.HttpClient()
 	resp, err := client.Do(req)
 	if err != nil {
 		qu.Debug("Error making request:", err)

+ 6 - 3
server.go

@@ -9,6 +9,7 @@ import (
 	"net/http"
 	"reflect"
 	be "spider_creator/backend"
+	hc "spider_creator/httpclient"
 	"time"
 )
 
@@ -211,9 +212,11 @@ func getResult(param, result interface{}, route string) {
 	// 设置请求头
 	req.Header.Set("Content-Type", "application/json")
 	// 发送请求
-	client := &http.Client{
-		Timeout: 10 * time.Second,
-	}
+	//client := &http.Client{
+	//	Timeout: 10 * time.Second,
+	//}
+	client := hc.HttpClient()
+	client.Timeout = 10 * time.Second
 	resp, err := client.Do(req)
 	if err != nil {
 		qu.Debug("Error sending request:", err)