You can't get an X.509 cert that doesn't have at least one subject principle name (the domain) specified. No useful CA is going to let you have a certificate without one that can be tied to a domain that you can demonstrate that you own. They can be wildcarded at the level that you "own" it so site1.domain.com, site2.domain.com etc are fine but site1.domain2.com wont be.
The alternative is to use Subject Alternate Names or SAN [capable] certs, these can contain a range of additional names (of various types) provided your cert provider is prepared to add them that is. For your use case they can be FQDNs for specific sites within a domain (site1.domain.com, site2.domain.com etc), FQDNs for other domains (site1.domain2.com, site1.domain.net). They can be used to add additional types of identifier depending on what you want to do, including ip-addresses however I don't know how widely supported these additional capabilities actually are. The number of SAN identifiers you can include also varies by certificate provider, Verisign allows for 19, while Digicert will support up to 150 for example.
From the OpenSSL documentation:
The subject alternative name extension
allows various literal values to be
included in the configuration file.
These include email (an email address)
URI a uniform resource indicator, DNS
(a DNS domain name), RID (a registered
ID: OBJECT IDENTIFIER), IP (an IP
address), dirName (a distinguished
name) and otherName.
The email option include a special
'copy' value. This will automatically
include and email addresses contained
in the certificate subject name in the
extension.
The IP address used in the IP options
can be in either IPv4 or IPv6 format.
...
subjectAltName=email:copy,email:my@other.address,URI:http://my.url.here/
subjectAltName=IP:192.168.7.1
subjectAltName=IP:13::17
subjectAltName=email:my@other.address,RID:1.2.3.4
subjectAltName=otherName:1.2.3.4;UTF8:some
other identifier