This issue was caused because the ServerName property was not being set
when making tls requests
From the GO docs:
ServerName is used to verify the hostname on the returned
certificates unless InsecureSkipVerify is given. It is also included
in the client's handshake to support virtual hosting unless it is
an IP address.
https://pkg.go.dev/crypto/tls?tab=doc
This seems to have fixed the SEC_ERROR_REUSED_ISSUER_AND_SERIAL error I
was getting in firefox.
I have taken the code from the goproxy project.
https://github.com/elazarl/goproxy/issues/311