【问题标题】:TWAPI TCL The target principal name is incorrectTWAPI TCL 目标主体名称不正确
【发布时间】:2017-10-22 06:52:43
【问题描述】:

我在服务器上有一个文件,我正在尝试读取它。 我的代码如下:

package require http
package require twapi_crypto
http::register https 443 [list ::twapi::tls_socket]
set token [http::geturl "https://$ipaddress/filename"]
set status [http::status $token]
set data [http::data $token]
put $data

我收到以下错误:

The target principal name is incorrect
while executing
"InitializeSecurityContext  $Credentials  $Handle  $Target  $Inattr  0  $Datarep  $inbuflist  0"
    (procedure "sspi_step" line 16)
    invoked from within
"sspi_step $SpiContext $data"
    (procedure "_negotiate2" line 19)
    invoked from within
"_negotiate2 $chan"
    (procedure "rethrow" line 2)
    invoked from within
"rethrow"
    invoked from within
"trap {
_negotiate2 $chan
} onerror {} {
variable channels
if {[info exists _channels($chan)]} {
dict set _chan..."
    (procedure "_negotiate line 3)
    invoked from within
"_negotiate $chan"
    (procedure "::twapi::tls::_so_write_andler" line12)
    invoked from within
"::twapi::tls::_so_write_handle rc0"

有人可以将我重定向到问题所在吗?当我尝试访问文件时,我收到来自 IE 的警告,即使我已将证书添加到浏览器,也必须单击继续,这是在 Windows 机器上运行的。

【问题讨论】:

    标签: windows ssl ssl-certificate tcl


    【解决方案1】:

    我猜测证书上的主题公用名与您传入的 IP 地址不匹配,这是意料之中的。打开 HTTPS 连接时,您必须使用主机 name

    # Use the right hostname of course
    set hostname "securetesting.example.com"
    
    set token [http::geturl "https://$hostname/filename"]
    

    这是因为该名称用于确定您连接的服务器是否是您要求连接的服务器。没有它,它可能是与绝对任何人的安全连接,而这不是一种有用的安全性!是的,这意味着您需要花一些时间在部署过程中正确设置 DNS,是的,这有点麻烦。安全性通常是。

    有趣的是,即使使用普通未加密的 HTTP,您也应该正确地提供主机名,因为服务器可以托管多个站点。唯一一次逃脱它是在与仅提供单个站点的服务器进行未加密的通信时;多年来,网络并没有真正以这种方式运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 2021-08-09
      相关资源
      最近更新 更多