first test the server firewalls are open. on a machine on the local network, access IIS by the server internal ipaddress and ports. you can use telnet to test the ports are open.
then you need a client machine that is not on your local network, but has internet access.
be sure to configure port forwarding on your ISP connection device to your internal server's ipaddress and desired ports. it may also have a firewall that need configuration.
on the client machine update the hosts file to have domain name for the public static ip.
test http access via the domain name.
then generate a self signed cert for the domain name. install as the ssl cert for IIS. then hit the site with https: from your test client. you will need to trust the certificate. if you don't want to install a fake ssl, use telnet to test port access, or configure http for both ports in the IIS bindings (be sure to disable https redirect in the asp.net core app).
now update the internet DNS cname for your domain name to point to th public ipaddress. the seller of the domain name should have a tool for this. may take a couple hours to propagate.
delete the host file entry in the test machine and valid access by DNS name.
now buy a ssl certificate and install on IIS and configure IIS https binding. now test the https access from the test machine.
https://www.digicert.com/kb/csr-creation-ssl-installation-iis-10.htm
note: whoever you buy the ssl cert from will have instructions.
really, the only part the windows server (the server does not have any knowledge of its external ipaddress).
1) configure internal static ipaddress instead of dhcp
2) open the firewall ports
3) install ssl certificate and https binding (hostname binding is optional)