我如何验证 DDCLIENT 正在使用 SSL,如果不是,我如何强制它?

Sha*_*tor 10 ssl dns openvpn dyndns ddclient

我一直在按照指南在我的 pi 上设置 VPN。部分步骤是设置和配置动态 dns 服务。我在多个平台上创建了多个帐户。没有 Ip 和 dynamicdns 是两个来命名的。下面是我的 ddclient.conf 文件的输出,它在两个动态 dns 站点上都可以正常连接。

daemon=60                               # check every 60 seconds
syslog=yes                              # log update msgs to syslog
mail=root                               # mail all msgs to root
mail-failure=root                       # mail failed update msgs to root
pid=/var/run/ddclient.pid               # record PID in file.
ssl=yes                                 # use ssl-support.  Works with
                                        # ssl-library
use=web, web=myip.dnsdynamic.com        # get ip from server.
server=www.dnsdynamic.org               # default server
login=YOURUSERNAME                      # default login
password=YOURPASSWORD                       # default password
server=www.dnsdynamic.org,              \
protocol=dyndns2                        \
MYDOMAIN.dnsdynamic.COM
Run Code Online (Sandbox Code Playgroud)

我的问题是,在这个文章中,他们说明如何验证您的PI是通过SSL进行连接。当我跑

sudo ddclient -verbose -debug -noquiet -query 
Run Code Online (Sandbox Code Playgroud)

它显示了每个站点通过 HTTP 与 HTTPS 或 SSL 的连接。我通过运行验证了 ssl 已安装

sudo apt-get install ssh libio-socket-ssl-perl
Run Code Online (Sandbox Code Playgroud)

关于它是否通过 ssl 连接或我如何强制连接的任何想法?我也看完了这篇文章。我确实看到 ddclient 表示它将使用 SSL(如果可用),我想知道这是否是使用免费 dynamicdns 站点的限制,或者我是否忽略了某些内容。这些文章看起来好像我正在使用的站点没有 ip 和 dnsdynamic 支持 SSL。

Sha*_*tor 6

我已经找到了答案,但如果不早点弄清楚,我觉得自己很愚蠢。

daemon=60                               # check every 60 seconds
syslog=yes                              # log update msgs to syslog
mail=root                               # mail all msgs to root
mail-failure=root                       # mail failed update msgs to root
pid=/var/run/ddclient.pid               # record PID in file.
ssl=yes                                 # use ssl-support.  Works with
                                        # ssl-library
use=web, web=https://myip.dnsdynamic.org        # get ip from server.
server=www.dnsdynamic.org               # default server
login=USERNAME                          # default login
password=PASSWORD                       # default password
server=www.dnsdynamic.org,              \
protocol=dyndns2                        \
YOUR DOMAIN GOES HERE
Run Code Online (Sandbox Code Playgroud)

以上将强制使用 SSL 并通过 SSL 进行连接。我做了两个改变。

该行use=web, web=myip.dnsdynamic.com应该是use=web, web=https://myip.dnsdynamic.org. 从 更改为.com可以.org阻止连接失败。https://在连接字符串之前添加允许它通过 SSL 进行连接。

显示输出use=web, web=myip.dnsdynamic.org

use=web, web=loopia address is IPADDRESSISHERE
CONNECT:  myip.dnsdynamic.org
CONNECTED:  using HTTP
SENDING:  GET / HTTP/1.0
SENDING:   Host: myip.dnsdynamic.org
SENDING:   User-Agent: ddclient/3.8.2
SENDING:   Connection: close
Run Code Online (Sandbox Code Playgroud)

显示输出use=web, web=https://myip.dnsdynamic.org

use=web, web=loopia address is IPADDRESSISHERE
CONNECT:  myip.dnsdynamic.org

The verification of cert '/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA/CN=www.dnsdynamic.org'
failed against the host 'myip.dnsdynamic.org' with the default verification scheme.

   THIS MIGHT BE A MAN-IN-THE-MIDDLE ATTACK !!!!

To stop this warning you might need to set SSL_verifycn_name to
the name of the host you expect in the certificate.

CONNECTED:  using SSL
SENDING:  GET / HTTP/1.0
SENDING:   Host: myip.dnsdynamic.org
SENDING:   User-Agent: ddclient/3.8.2
SENDING:   Connection: close
Run Code Online (Sandbox Code Playgroud)

我仍然不确定为什么强制ssl=yes不会导致它自动使用 HTTPS,但它现在通过 SSL 连接,@George 看到的命令帮助我验证它是:sudo ddclient -verbose -debug -noquiet -query