Having a passcode to protect a key file for a production service is pointless, because you move the problem of storing the certificate securely to the problem of storing the passcode securely, so might as well skip the passcode and store the cert securely.
Your certificate is probably encoded as a PEM cert, so you'd have to manually call
https://golang.org/pkg/crypto/x509/#DecryptPEMBlock and provide a password, then construct your listener yourself using the unmarshaled certificate. So, how are you going to protect this passcode? Is someone going to have to provide it every time you start?
Generally, in production systems, we use some kind of secret manager to store that certificate, such as AWS Secrets Manager or encrypt it with KMS, store it in Vault, etc. Ideally, you actually make a subordinate cert for that service and rotate it at a reasonable interval.