SSL works by comparing a Server's Public key against its Private key...
Public Key is what the Browsers or Client receive once they touch your Server
Private Key stays on the Server and is not seen by Browsers or Client... Server will encrypted every packet based on this Private Key.
SSL doesn't work against IP Address... Only Actual Servers.. that system itself.
A Server can create as many "Self Signed" Certificates as it needs
No... Web Browsers aren't the only Clients to use SSL Certs. Ever secure Client can use a SSL Cert.
If you don't want some perpetrator collecting your packets un-encrypted... so its best to Encode that Data with a SSL Certificate.
so that POST/GET application your using is actually belongs to HTTP port 80... because your using Encryption it uses HTTPS which uses port 443 to encrypt HTTP request via POST/GET
Update *** Using a "Self Signed" Certificate will always warn Browsers that this Connection isn't that Secured because the Browser can't Verify the Certificate... by Default the browser will not display the webpage unless you make an exception...
If you want the Browsers to Accept the HTTPS Certificate you will have to purchase a "verified Signed" certificate from a SSL Company online... like VeriSign, SSLshopper, Commodo, digicerts... etc.. many to choose from all at different price range.
For an API you do not need this... Only for Webrowsers itself as to protect to users because any Server/System can create their own Self Signed Certs... THe Icon in the Address bar with the Lock on it shows that your on a secured HTTPS connection... if this was a Self Signed it would be Red and opened.
A Self Signed gives you the same Encryption protection as a Verified Signed but Verified Signed offers Insurance if you get Hacked while using their SSL Cert.