|
@@ -433,6 +433,13 @@ func (c *TLSConfig) Build() (proto.Message, error) {
|
|
|
if c.ALPN != nil && len(*c.ALPN) > 0 {
|
|
if c.ALPN != nil && len(*c.ALPN) > 0 {
|
|
|
config.NextProtocol = []string(*c.ALPN)
|
|
config.NextProtocol = []string(*c.ALPN)
|
|
|
}
|
|
}
|
|
|
|
|
+ if len(config.NextProtocol) > 1 {
|
|
|
|
|
+ for _, p := range config.NextProtocol {
|
|
|
|
|
+ if tcp.IsFromMitm(p) {
|
|
|
|
|
+ return nil, errors.New(`only one element is allowed in "alpn" when using "fromMitm" in it`)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
if c.CurvePreferences != nil && len(*c.CurvePreferences) > 0 {
|
|
if c.CurvePreferences != nil && len(*c.CurvePreferences) > 0 {
|
|
|
config.CurvePreferences = []string(*c.CurvePreferences)
|
|
config.CurvePreferences = []string(*c.CurvePreferences)
|
|
|
}
|
|
}
|
|
@@ -443,7 +450,7 @@ func (c *TLSConfig) Build() (proto.Message, error) {
|
|
|
config.CipherSuites = c.CipherSuites
|
|
config.CipherSuites = c.CipherSuites
|
|
|
config.Fingerprint = strings.ToLower(c.Fingerprint)
|
|
config.Fingerprint = strings.ToLower(c.Fingerprint)
|
|
|
if config.Fingerprint != "unsafe" && tls.GetFingerprint(config.Fingerprint) == nil {
|
|
if config.Fingerprint != "unsafe" && tls.GetFingerprint(config.Fingerprint) == nil {
|
|
|
- return nil, errors.New(`unknown fingerprint: `, config.Fingerprint)
|
|
|
|
|
|
|
+ return nil, errors.New(`unknown "fingerprint": `, config.Fingerprint)
|
|
|
}
|
|
}
|
|
|
config.RejectUnknownSni = c.RejectUnknownSNI
|
|
config.RejectUnknownSni = c.RejectUnknownSNI
|
|
|
|
|
|
|
@@ -472,7 +479,7 @@ func (c *TLSConfig) Build() (proto.Message, error) {
|
|
|
config.MasterKeyLog = c.MasterKeyLog
|
|
config.MasterKeyLog = c.MasterKeyLog
|
|
|
|
|
|
|
|
if c.ServerNameToVerify != "" {
|
|
if c.ServerNameToVerify != "" {
|
|
|
- return nil, errors.PrintRemovedFeatureError("serverNameToVerify", "verifyPeerCertInNames")
|
|
|
|
|
|
|
+ return nil, errors.PrintRemovedFeatureError(`"serverNameToVerify"`, `"verifyPeerCertInNames"`)
|
|
|
}
|
|
}
|
|
|
config.VerifyPeerCertInNames = c.VerifyPeerCertInNames
|
|
config.VerifyPeerCertInNames = c.VerifyPeerCertInNames
|
|
|
|
|
|