You can use SSL/TLS certificates and etc. on sites with domain names, but I don't know if it's possible to use them for IP addresses. If this is the case, would I have to use a self-signed cert and install it in the browser? This only needs to work for specific client browsers, so it is feasible to install self-signed certificates if necessary.
The only obligation is that the content of the certificate's Common Name (CN) field must be equal to the host name part of your URL.
So, if you want to protect a URL such as
https://192.0.2.123/path/to/resource, then your browser will expect a certificate with a Common Name set to
192.0.2.123. No problem if it is a an IP address instead of a Fully Qualified Domain Name (FQDN).
Regarding the Certification Authorities, they may add supplementary requirements for such a request (for instance you will most probably need to own the IP address, ie. it must be a public IP address assigned to you on the RIPE registry or the local equivalent and not a local or a loaned one). So if you don't really need this you may prefer to go with a self-signed one.
As a side note, while using CN fields is the traditional and most widely compatible way to do this, it is now deprecating in favor of using Subject Alternate Names (SAN).