首页 文章

仅为Web服务使用自签名SSL证书

提问于
浏览
2

我有一个客户端将拥有的Web服务,我希望将发送到服务器的数据加密 . 为了测试这个,我使用了自签名SSL证书 . 我知道当你使用自签名证书时,当你导航到使用它的任何地址时,网络浏览器会警告你它是不安全的等等 .

我想知道如果我在Web服务上线时使用此证书而不是经过验证的证书,我是否会遇到任何问题?

此外,我没有服务器的域名,所以我只是要使用我的ISP提供的IP地址,这是否可以使用证书,因为我读到的所有人都在谈论使用它们有域名吗?

2 回答

  • 0

    SSL证书通常颁发给域,并由颁发机构签名 . 当浏览器连接到服务器时,服务器将其证书提供给客户端 . 然后,客户端通过检查其访问的域是否与证书中提到的域相同来验证证书 . 此外,它还验证了其信任链 . 这意味着发行人的证书也应该是有效的 . 如果发行者不是根签名机构,则验证发行者的发行者证书 . 并且,最终应该信任根签名机构,这意味着根签名机构应该在您的信任库中 . 所有主要的签名机构,如Verisign,Thawte等,默认情况下都是JDK委托人,因此如果您有他们签署的证书,那么您在验证您的信任链时就没有问题 . 如果您的证书由不受信任的机构签名,则您需要手动导入信任链中的颁发者证书 .

    现在,在使用自签名证书时,颁发证书的实体本身就是根签名机构 . 因此,应该手动将证书导入您的信任库 . 您需要执行此操作才能获得SSL握手 . 但仅此一点并不能解决您的问题 . 由于您没有使用任何域名,因此如果您通过DHCP服务器自动获取服务器IP,则每次重新启动服务器时都可能更改IP . 如果是这种情况,那么一旦IP更改,即使是受信任的自签名证书也不会起作用 . 因为,证书颁发给IP,一旦IP更改,证书将变为无效 . 要解决此问题,您需要从网络管理员处获取服务器的静态IP地址 . 然后为您的静态IP生成自签名证书 . 然后让您的客户在您的信任存储区中添加您的服务器证书 .

    这对您的客户来说有点乏味 . 但是,如果您拥有固定数量的客户端并且客户端计算机在您的控制之下,那么您可以自己将服务器证书添加到客户端信任存储区 . 但是,如果您的服务器对所有人开放或拥有大量客户端,那么我建议获得由知名且受信任的证书颁发机构签署的证书 . 同样,除非您的服务器获得域名,否则无论谁签署您的证书,您仍然需要具有静态IP .

  • 1

    自签名证书的问题在任何场景,浏览器或非浏览器中都是相同的:它本身绝对没有任何保证 . SSL的目的有两个:加密和身份验证 . 通常,SSL客户端正在使用/要求两个方面,以确保连接真正被视为安全 .

    对于身份验证(“我与谁交谈?”),使用证书 . 要使用证书对您的对等方进行身份验证,您将需要拥有该证书的副本以进行比较,或者您需要获得该证书的签名者证书的副本以比较签名 . 如果您没有,证书不保证任何事情 .

    含义:自签名证书很好 if the client has a copy of that certificate and can trust the source of where they got the certificate from. 如果您的用例非常狭窄,每个要连接到您的Web服务的客户都会事先与您联系(例如通过电子邮件),并且您可以提供一份证书给他们,以便他们安装到他们的本地信任存储区,然后他们能够 Build 一个安全和经过身份验证的连接,无论如何 .

    这对于任意随机访问者的典型网站来说是行不通的;这就是签名证书的用途,其中已经受信任的实体可以担保一个迄今为止未知的第三实体 . 它可能是可行的但是在供应商 - 客户场景中 .

    话虽如此,证书现在可以免费获得,并为您的服务提供更多的可信度和专业性 .

    是的,证书可以是issued for IP addresses .

相关问题