@@ -207,7 +207,7 @@ func ParseConfig() (cfg *Config, err error) {
207207 }
208208
209209 if opts .DNSServers != "" {
210- cfg .DNSServers , err = parseDNSServers (opts .DNSServers )
210+ cfg .DNSServers , err = parseDNSServers (opts .DNSServers , opts . Insecure )
211211 if err != nil {
212212 return nil , fmt .Errorf ("invalid dns-servers specified %s: %w" , opts .DNSServers , err )
213213 }
@@ -349,11 +349,14 @@ func parseResolve(resolve []string) (m map[string][]net.IP, err error) {
349349}
350350
351351// parseDNSServers parses --dns-servers command-line argument and returns the
352- // list of upstream.Upstream created from them.
353- func parseDNSServers (dnsServers string ) (upstreams []upstream.Upstream , err error ) {
352+ // list of upstream.Upstream created from them. If insecure is true and the
353+ // upstreams use encrypted DNS, certificate verification will be disabled for
354+ // them.
355+ func parseDNSServers (dnsServers string , insecure bool ) (upstreams []upstream.Upstream , err error ) {
354356 addrs := strings .Split (dnsServers , "," )
355357 for _ , addr := range addrs {
356- u , uErr := upstream .AddressToUpstream (addr , nil )
358+ opts := & upstream.Options {InsecureSkipVerify : insecure }
359+ u , uErr := upstream .AddressToUpstream (addr , opts )
357360 if uErr != nil {
358361 return nil , fmt .Errorf ("invalid DNS server %s: %w" , addr , uErr )
359362 }
0 commit comments