|
|

本章提供了关于启用了 mod_ssl 安全模块来使用 OpenSSL 库和工具包的 Apache HTTP 服务器 服务器的基本信息。Red Hat Linux 提供的这三个部件的组合在本章中将会被称为安全万维网服务器或安全服务器。
mod_ssl 模块是 Apache HTTP 服务器 的安全模块。 mod_ssl 模块使用由 OpenSSL 计划提供的工具来给 Apache HTTP 服务器 添加一项重要功能 — 加密通信的能力。与之相反,使用常规 HTTP,浏览器和万维网服务器间的通讯就会使用纯文本,它们在浏览器和服务器之间的路线上可能会被其它人截取并偷阅。
本章并不是这些程序的完全或唯一的文档。若你想获取关于某主题的更深入的文档,本章在合适的地方会为你指引途径。
本章将会向你显示如何安装这些程序。你还需要掌握生成密钥、证书请求、如何生成自我签名的证书、以及如何安装证书来用于你的安全服务器的必要步骤。
mod_ssl 配置文件位于 /etc/httpd/conf.d/ssl.conf 。要载入这个文件而使 mod_ssl 能够工作,你必须在 /etc/httpd/conf/httpd.conf 中包括 Include conf.d/*.conf 这条声明。在 Red Hat Linux 9中,该声明被默认包括在默认的 Apache HTTP 服务器 配置文件中。
20.2. 与安全相关的软件包概述
要启用安全服务器,你至少需要安装以下软件包:
httpd
httpd 软件包包含 httpd 守护进程和相关的工具、配置文件、图标、Apache HTTP 服务器 模块、说明书(man)页和其它被 Apache HTTP 服务器 使用的文件。
mod_ssl
mod_ssl 软件包包括 mod_ssl 模块,它通过安全套接字 层(SSL)和传输层安全(TLS)协议为 Apache HTTP 服务器 提供了强大的加密能力。
openssl
openssl 软件包包含 OpenSSL 工具包。OpenSSL 工具包实现 SSL 和 TLS 协议,还包括一个常规目的的加密库。
除此之外,其它包括在 Red Hat Linux 中的软件包也可以提供一定程度的安全功能(但不是安全服务器运行所必需的):
httpd-devel
httpd-devel 软件包包含 Apache HTTP 服务器 的包含文件、头文件和 APXS 工具程序。如果你打算载入额外的模块(不是该产品所提供的),你需要以上所有文件和程序。请参阅 《Red Hat Linux 参考指南》 来获取关于使用 Apache HTTP 服务器 的 DSO 功能来把模块载入安全服务器的详细信息。
如果你不打算在 Apache HTTP 服务器 中载入额外模块,你不安装该软件包。
httpd-manual
httpd-manual 软件包包含 HTML 格式的 Apache 计划的 Apache User's Guide 说明指南。该指南还可在 http://httpd.apache.org/docs-2.0/ 中找到。
OpenSSH 软件包
The OpenSSH 软件包提供了一组用来在远程机器上登录和执行命令的 OpenSSH 网络连接工具集合。OpenSSH 工具加密所有交通(包括口令),因此你可以避免被窃听,防范截取连接和其它对你的机器和远程机器间通信的攻击。
openssh 软件包包括 OpenSSH 客户程序和 服务器都需要的核心文件。 openssh 软件包还包括 scp ,它是 rcp (用来在机器间复制文件)和 ftp (用来在机器间传输文件)的安全替换。
openssh-askpass 软件包支持对话框窗口的显示。该窗口在使用 OpenSSH 代理时提示你输入口令。
openssh-askpass-gnome 软件包可以在 OpenSSH 程序提示你输入口令时和 GNOME 桌面环境一起使用来显示图形化对话窗口。如果你运行的是 GNOME,并使用 OpenSSH 工具,你应该安装该软件包。
openssh-server 软件包包括 sshd 安全 shell 守护进程和相关文件。 安全 shell 守护进程是 OpenSSH 套件的服务器一方,如果你 想允许 SSH 客户连接到你的主机,你必须在主机上安装该软件包。
openssh-clients 软件包包含进行加密 SSH 服务器连接所需的客户程序,其中包括: ssh ( rsh 的安全替换); sftp ( ftp 的安全替换,用来在机器间传输文件); slogin (用于远程登录的 rlogin 和通过 Telnet 协议与另一主机通信的 telnet 的安全替换)。
关于 OpenSSH 的详细信息,请参阅第15章、 《Red Hat Linux 参考指南》 、以及 OpenSSH 的网站: http://www.openssh.com 。
openssl-devel
openssl-devel 软件包包含编译带有各类加密算式和协议支持的应用程序所需的静态库和包含文件。你只有在开发包括 SSL 支持的应用程序时,才需要安装该软件包 — 仅使用 SSL 不必安装该软件包。
stunnel
stunnel 软件包提供了 Stunnel SSL 会绕程序。Stunnel 支持 TCP 连接的 SSL 加密,因此它可以为无 SSL 的守护进程和协议(如 POP、IMAP 和 LDAP)提供加密,却不需对守护进程的编码做任何修改。
表 20-1 显示了安全服务器软件包的摘要,并向你表明每个软件包对安全万维网服务安装是否必不可少。
软件包名称 是否可选可不选? httpd 否 mod_ssl 否 openssl 否 httpd-devel 是 httpd-manual 是 openssh 是 openssh-askpass 是 openssh-askpass-gnome 是 openssh-clients 是 openssh-server 是 openssl-devel 是 stunnel 是
表 20-1. 安全软件包
20.3. 证书和安全概述
你的安全服务器使用安全套接字层(SSL)和(多数情况下)来自证书权威(CA)的数码证书的组合来提供安全性。SSL 处理浏览器和你的安全服务器间的加密通讯和互相验证。CA 认可的数码证书为你的安全服务器提供验证(CA 以它的名誉担保对你的机构组织身份的认证)。当你的浏览器使用 SSL 加密通讯时,你会看到导航栏上的划一资源定位(URL)的开头有一个“https://”前缀。
加密依赖于钥匙的使用(你可以把它们当做数据格式的秘密编码和解码钥匙)。传统的或对称的加密术中,事务的两端都使用同一把钥匙,它们可以用这把钥匙来破译彼此的传输。在公共或非对称加密术中,有两把钥匙并存:公钥和密钥。某人或某机构把他们的密钥保密,只公布他们的公钥;使用密钥编码的数据只能用公钥才能解码。
要设置你的安全服务器,你将会使用公共加密术来创建公钥和密钥对。在多数情况下,你会向某 CA 发送证书请求(包括你的公钥)、你的公司身份的证据、以及付款。CA 将会校验你的证书请求和身份,然后把你的安全万维网证书寄回给你。
安全服务器使用证书来向万维网浏览器标明身份。你可以生成你自己的证书(叫做“自签”证书),或者你可以从证书权威中获取证书。来自有声望的 CA 的证书会担保与某一特定公司或机构相连的网站的身份。
另外,你也可以创建你自己的自签证书。然而请注意,自签证书不应该被用在多数生产环境中。自签证书不会被用户的浏览器自动接受 — 浏览器将会征询用户是否要接受该证书并创建安全连接。请参阅 第 20.5 节 来获取关于自签和 CA 签名的证书区别的详细信息。
在你有了自签的证书或来自 CA 的证书后,你需要把它安装在你的安全服务器上。
20.4. 使用已存钥匙和证书
如果你已有现存的钥匙和证书(例如,如果你要安装安全服务器来替换另一家公司的安全服务器产品),你可能将能够在安全服务器中使用你现存的钥匙和证书。在下面这两种情况下,你将无法使用现存的钥匙和证书:
如果你改变了你的 IP 地址和域名 — 证书是向特定 IP 地址和域名对颁发的。如果你改变了域名或 IP 地址,你需要申请一份新证书。 |
|