我刚刚尝试购买Comodo Positive SSL,但由于不支持公有IP地址而被拒绝,而是仅支持域名。
有谁知道任何支持公共IP地址而不是域名的SSL证书提供者?
我的公司有一个专门的服务器托pipe与一个networking托pipe公司,这是用来运行多个项目(为多个客户端)的错误跟踪。 由于它只用于错误跟踪器,所以我们不需要域名(我们的客户端通过在浏览器中input公共IP来访问它)。
我认为你可以做到这一点,但不是你想要做到这一点。
SSL证书是将公共encryption密钥绑定到包含CN或Common Name元素的X.500结构的语句; 签名证书就是这样的一种签名证书,其绑定经第三方证书颁发机构的可validationauthentication,使用最终用户已知的公钥(在浏览器内的证书颁发机构(CA)证书堆栈)。
当您使用浏览器访问SSLencryption的网站时,浏览器会使签名的CN知道。 浏览器select使用的是浏览器。 我知道的浏览器将它与请求的主机名进行比较,如果不同,则会出错(或者,如果authentication的绑定不能经受分析,例如,浏览器不知道签名证书,但是这是一个不同的问题)。 没有任何东西原则上阻止你获得CN是一个IP地址而不是FQDN(完全合格的域名)的公共签名证书[1],但是这不会神奇地使浏览器比较CN和IP地址,而不是请求的主机名 。
我怀疑解决你的问题最简单的方法就是开始你自己的CA,这很容易做,而且有很多公开的教程; 一个在这里 。 一旦您的最终用户将您的CA导入浏览器,您所有的证书都将被视为权威。
然后你可能会遇到第二个问题,那就是你想在一个IP地址上运行大量的NameVirtualHost站点。 这在历史上是不可行的,因为(与TLS不同)SSL协商发生在连接上的任何事情之前; 也就是说,embedded在您的证书中的CN在客户端能够说出他们正在尝试连接的主机之前已经被客户端使用并被客户端使用。
最近,引入了名为SNI(服务器名称指示)的协议扩展,它允许客户端和服务器在SSL证书出现之前指出他们想要做一些主机名,允许一个正确的由服务器提供的证书。 显然,这需要apache 2.2.10,一个足够新的OpenSSL版本,( 重要的 )客户端支持。
所以,如果我必须做你想做的事情,我会看着我自己的CA证书,告诉我的最终用户,他们必须使用支持SNI的浏览器并导入我的CA根证书,为每个bugtrack站点签署我自己的SSL证书。
[1]好吧,你可能没有发现任何人会这样做,但这是一个实现细节。 我想在这里展示的是,即使你做了,也不能解决你的问题。
我知道有一个根证书颁发机构已经预先填充了所有主stream浏览器, 并在公有IP地址上发布了SSL证书:请看GlobalSign 。 他们读出RIPE信息以validation您的证书请求,因此您可能首先要检查RIPE条目是否以正确的名称发出。
关于这个条目已经得到的反馈:
是的 ,最好是购买一个域名并在该CN上签发SSL证书。 这也比上面的GlobalSign选项便宜。
但是 ,有些情况下使用公共IP作为CN的SSL证书是有用的。 许多互联网提供商和政府基于DNS基础设施阻止不需要的网站。 如果您提供某种可能被阻止的网站,例如出于政治原因,通过其公共IP地址访问此网站是个不错的select。 同时,您将需要为这些用户encryptionstream量,并且不希望非技术用户通过点击浏览器的安全性exception警告的麻烦(因为证书的CN不匹配实际input的)。 让他们安装你自己的根CA更是一件麻烦而且不现实的事情。
继续购买域名。 他们便宜,不便宜。 你只需要一个。 也许甚至只是build立bugtracker.yourcompany.com。
然后,为每个错误跟踪器,为该名称设置一个子域名。 获取每个这些子域的SSL证书。 由于你看起来特别费钱,所以你想与之做生意的公司叫做StartSSL。
你想使用它们的原因是(除了被主stream浏览器所信任),他们的证书不会花费一个arm和一条腿。 最基本的证书是诚实的,没有任何东西是免费的。 他们validation你的身份,然后让你发出尽可能多的你需要的。 如果你需要更好的证书(通常花费数百美元),那么你需要花费大约50美元2年才能在一个IP上支持多个域名的SSL。
他们超级便宜,你得到的。 他们颁发真正的证书,受到客户浏览器的信任,而不是像其他地方那样进行为期90天的testing。