Man kann sich auch selbst ein Zertifikat für SSL erstellen,
aber dann muß man es auch im ZertifikateStore des Browsers registrieren.
Also genauso, wie bei den Code Signing Zertifikaten, wo Windows das Zertifikat kennen muß (den Public-Teil ... das Private kennt nur der Server)
Zertifikate, wie z.B. von [GOOGLE]Let's Encrypt[/GOOGLE] haben aber den Vorteil, dass sie von einem Root-Zertifikat abgeleitet sind, welches der Browser schon kennt und damit dann auch dein Zertifikat als vertrauenswürdig erachtet.
Um dort (und auch bei anderen Anbietern) ein Zertifikat zu bekommen, muß dein Server "meistens" öffentlich über eine Domain erreichbar sein (zumindestens für die Zeit der Ausstellung des Zertifikates).
Und der Server muß auch über diese Domain angesprochen werden (die angerufene Adresse muß mit der/denen übereinstimmen, welche im Zertifikat angegeben sind) ... ja, das kann auch ein lokaler Server sein, wenn man ihn über die öffentliche Domain aufruft (oder z.B. via Direktleitung, welche man z.B. in HOSTS einträgt, wenn die öffentliche Auflösung von DOMAIN zu
IP nicht geht, oder nicht gemacht werden soll)