If you turn on HTTPS logins in the captive portal and the user attempts to connect to a secure site and you forward them to the portal instead, there is nothing you can to do prevent the certificate error. Think about it. They tell their browser to connect to https://www.google.com/ and they get some certificate from your pfSense instead that has a completely different CN. Certificate error - always.
If you have HTTPS logins enabled and the user attempts to connect to an HTTP site on port 80, the CP will redirect them to the proper HTTPS port on the server name defined in HTTPS Server Name in the portal. It is up to you to obtain a certificate signed by something in the client's root certificate store and get it installed in the portal. If everything doesn't exactly match, certificate error generated by the browser.
HTTPS Server Name
This name will be used in the form action for the HTTPS POST and should match the Common Name (CN) in your certificate (otherwise, the client browser will most likely display a security warning). Make sure captive portal clients can resolve this name in DNS and verify on the client that the IP resolves to the correct interface IP on pfSense.
The only way to guarantee certificate errors will not be generated by your portal is to enable HTTPS logins with all the proper certificates and hostnames and to be running 2.2-RC with the "Disable HTTPS forwards" option checked. You won't get cert errors any more but initial attempts to HTTPS sites will still hang.
There is nothing, NOTHING that can be changed in pfSense or any other captive portal to "fix" this. Captive portals break the internet by design.
ETA: https://www.startssl.com/ for free (really) certificates. And you'll get an S/MIME cert for email (also free) in the process. You, naturally, have to have control of the domain(s) under which you obtain certs.