如何通过rsync将SSL证书复制到另一台服务器
how to copy SSL certificate to another server via rsync
我的设置包含 2 台服务器 - 一台用于邮件主机,另一台用于网络主机。由于 webhost 有 SSL 证书,我也需要这些证书到邮件主机服务器(同一域)。
有没有办法使用 rsync 或任何其他方式将证书文件从本地 webhost 服务器安全地复制到本地 mailhost 服务器?通过这样做,可以保证钥匙的安全,并且可以让鸽舍使用。
我试过在两端给 rsync 赋予 sudo 权限(sudoers 文件也被修改但仍然说 "no tty present and no askpass program specified"),也使用 ssh 密钥但仍然没有成功。
我必须做什么?
rsync 是这样工作的:rsync -P from_host_user@from_host_ip:path1 to_host_user@to_host_ip:path2
这将使用 from_host_user 登录到 from_host_ip 上的 ssh 端口,从路径 1 复制文件,使用 to_host_user 登录到 to_host_ip 并将文件放在路径 2 上
首先,您通常不应为 Web 和邮件服务器使用相同的证书。基本设置是 Web 服务器应该有一个 www.whatever.com 的证书,whatever.com 作为备用名称(或者可能相反),并且邮件服务器将有一个类似 mail.whatever.com,或任何它的主机名。请注意,邮件服务器的证书应该用于其主机名, 而不是 它所服务的域。有一个邮件服务器甚至不在与其服务的域相同的顶级域下是完全正常的——如果 DNS 中有一条 MX 记录表明 whatever.com 的邮件应该转到 someserver.isp.net,完全正常,邮件服务器需要 someserver.isp.net,not whatever.com.
的证书
其次,听起来您正试图过度自动化。如果您确实需要在多台计算机上使用相同的证书,您通常应该在服务器之间手动复制它(例如在非特权帐户之间使用 scp
),然后在每台服务器上手动安装它。另一方面,如果您使用像 letsencrypt 这样的自动证书生成系统,您最好在每个服务器上生成独立的证书。
允许自动权限升级存在重大安全风险,例如允许 rsync
到 运行 作为 root 通过 sudo。除非您非常小心,否则任何有权访问该系统的人都可以利用这一点,例如只需使用 rsync 即可修改他们想要的任何文件(包括 /etc/sudoers)!同样,允许一台服务器以 root 身份远程连接到另一台服务器意味着任何可以接管一台服务器的人都会自动获得对另一台服务器的完全控制。这很危险!除非你真的需要,否则不要这样做,在那种情况下,你需要真正真正地理解你在做什么。
我的设置包含 2 台服务器 - 一台用于邮件主机,另一台用于网络主机。由于 webhost 有 SSL 证书,我也需要这些证书到邮件主机服务器(同一域)。
有没有办法使用 rsync 或任何其他方式将证书文件从本地 webhost 服务器安全地复制到本地 mailhost 服务器?通过这样做,可以保证钥匙的安全,并且可以让鸽舍使用。
我试过在两端给 rsync 赋予 sudo 权限(sudoers 文件也被修改但仍然说 "no tty present and no askpass program specified"),也使用 ssh 密钥但仍然没有成功。
我必须做什么?
rsync 是这样工作的:rsync -P from_host_user@from_host_ip:path1 to_host_user@to_host_ip:path2
这将使用 from_host_user 登录到 from_host_ip 上的 ssh 端口,从路径 1 复制文件,使用 to_host_user 登录到 to_host_ip 并将文件放在路径 2 上
首先,您通常不应为 Web 和邮件服务器使用相同的证书。基本设置是 Web 服务器应该有一个 www.whatever.com 的证书,whatever.com 作为备用名称(或者可能相反),并且邮件服务器将有一个类似 mail.whatever.com,或任何它的主机名。请注意,邮件服务器的证书应该用于其主机名, 而不是 它所服务的域。有一个邮件服务器甚至不在与其服务的域相同的顶级域下是完全正常的——如果 DNS 中有一条 MX 记录表明 whatever.com 的邮件应该转到 someserver.isp.net,完全正常,邮件服务器需要 someserver.isp.net,not whatever.com.
的证书其次,听起来您正试图过度自动化。如果您确实需要在多台计算机上使用相同的证书,您通常应该在服务器之间手动复制它(例如在非特权帐户之间使用 scp
),然后在每台服务器上手动安装它。另一方面,如果您使用像 letsencrypt 这样的自动证书生成系统,您最好在每个服务器上生成独立的证书。
允许自动权限升级存在重大安全风险,例如允许 rsync
到 运行 作为 root 通过 sudo。除非您非常小心,否则任何有权访问该系统的人都可以利用这一点,例如只需使用 rsync 即可修改他们想要的任何文件(包括 /etc/sudoers)!同样,允许一台服务器以 root 身份远程连接到另一台服务器意味着任何可以接管一台服务器的人都会自动获得对另一台服务器的完全控制。这很危险!除非你真的需要,否则不要这样做,在那种情况下,你需要真正真正地理解你在做什么。