四、为RHEL 4.0版本Linux的Apache服务器配置SSL
Apache服务器使用SSL时通常有两种选择,即主服务器或虚拟Web站点。首先看主服务器配置方法。
如果使用的是RHEL 3.0-4.0那么可以直接使用命令“rpm -qa | grep mod_ssl”检查,如果没有安装,可以以root 的身份登入系统,输入命令:“system-config-packages“。利用GUI 套件管理工具的网页服务器(见图5),点选「详细信息」,然后勾选「mod_ssl」,便会提示放入第二张光盘,便可完成安装工作。
图5 安装mod_ssl 软件包 |
下面产生 SSL 凭证:使用以下命令可以产生 .key 和 .csr 文件:
# openssl genrsa -out server.key 1024
Generating RSA private key, 1024 bit long modulus
......++++++
........++++++
e is 65537 (0x10001)
# chmod 600 server.key
#openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN #两个字母的国家代号#
State or Province Name (full name) [Berkshire]:Beijing #省份名称#
Locality Name (eg, city) [Newbury]:beijing dax City #城市名称 #
Organization Name (eg, company) [My Company Ltd]:x41 #公司名称#
Organizational Unit Name (eg, section) []:x41 #组织名称#
Common Name (eg, your name or your server's hostname) []:localhost #域名#
Email Address []:goodcjh@2911.net #Email地址#
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:goodcjh
An optional company name []:goodcjh
root#chmod 400 server.crt
注意黑体部分是需要手工输入。下面要自行签署是有效的,要再让使用者汇入你的凭证才行。以下将示范如何自己签署公钥:
openssl x509 -req -days 365 –in server.csr -signkey www. server.key -out server.crt
完成之后,你应该就会产生三个文件:server.csr,server.key,server.crt。将它们复制到ca存放目录:/etc/httpd/conf/ca,然后修改Apache配置文件 httpd.conf,添加两行:
SSLCertificateFile /etc/httpd/conf/ca/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ca/server.key
重新启动 Apache
apachectl stop
apachectl startssl
使用浏览器访问openwebmail服务器首页输入:https:// IP地址或者域名 /cgi-bin/openwebmail/openwebmail.pl 在Linux下Firefox浏览器屏幕提示见图6。
图6 Linux下Firefox浏览器 https 安全性提示的界面 |
图7 Windows 操作 IE浏览器 https 安全性提示的界面 |
图8 Linux 下Firfox浏览器显示SSL加密后的OpenWebmail首页 |
图9 Windows 下IE浏览器显示SSL加密后的OpenWebmail首页 |
五、其它Linux版本安装mod_ssl
如果您使用的Linux发行版本没有包括mod_ssl软件,可以使用APT命令添加。Debian GNU/Linux 是APT(Advanced Package Tool)的缔造者。初衷是利用工具来解决软件安装时候的依赖性问题。其工作原理大致为:用户安装APT客户端工具,查寻APT服务器端的资料库(repositories)上的RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。APT 除了可以让你很方便且快速地安装 RPM 软件外,你也可以用它来更新系统。虽然APT是基于Debian的软件包管理工具,但是已经被一个巴西公司Conectiva移植到基于RPM的系统上。因此对于基于RPM软件包管理的平台,如Red Hat、TurboLinux、SuSe、Mandrake等Linux发行版本,APT是一个非常优秀的软件管理工具。
APT系统主要包括:
重新启动 Apache服务器
root # apachectl stop
root # apachectl startssl
监控服务器进程和运行端口,见图10和图11:
netstat -ntulp | grep 443
图10 Https服务器运行端口 |
图11 Https服务器运行进程号 |
安全提示:即使一个网站使用了SSL安全技术,但这并不是说在该网站中正在输入和以后输入的数据也是安全的。所有人都应该意识到SSL提供的仅仅是电子商务整体安全中的一小部份解决方案。SSL在网站上的使用可能会造成管理员对其站点安全性的某些错觉。使用了SSL的网站所可能受到的攻击和其它服务器并无任何区别,同样应该留意各方面的安全性。简言之,加密和数字证书,SSL的主要组成,从来都无法保护服务器--它们仅仅可以保护该服务器所收发的数据。
另外SSL-evading木马也能绕过安全和认证机制,而这种安全、认证机制正是目前的网上银行和从事网上交易的机构最主要的安全手段。一旦电脑中感染了这种木马程序,所有需要得到用户认可的行为都可以在用户不知情的情况下偷偷进行。 SSL-evading木马程序往往趁用户不注意,偷偷地安装在用户的电脑中,它们或者窃取用户的登录信用,或者在用户成功登录后,偷偷把账户里的资金划走。在这两种情况中,电脑和银行之间的SSL连接都是完整的,没有任何破坏,因而,用户认为他们那些敏感的交易信息受到了保护,而事实根本不是如此。
另外使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。升级你的OpenSSL升级到0.9.6e或者更高版本;伪造的钥匙将起不了任何作用,也不能渗透到系统里。一些反病毒程序能发现并杀死SSL蠕虫,但是别指望这些:蠕虫可能产生变体,从而逃脱反病毒软件的追捕 。注意重启Apache可以杀死这样的病毒,但是对防止将来的感染没有任何意义。
常见问题解答:
1.运行“apachectl startssl”命令出现错误如何解决?
请注意查看日志文件,通常的错误是在http.conf配置文件中输入错误、拼写错误或者丢失路径造成的。
2.为什么我不能在相同IP地址下多个域名的虚拟主机上使用SSL?
这个问题十分专业,首先看(图3),可以看到SSL协议层是在HTTP协议层下面的,当SSL连接建立时,SSL模块在Web模块之前和浏览器进行通讯并交换证书、建立加密隧道。众所周知,Web服务器是通过HTTP数据包中的”Host”字段来区分虚拟主机的。而SSL模块在把服务器证书发送到浏览器时,还没有收到任何关于HTTP的数据包,更不知道虚拟主机的域名,因此SSL模块只能固定的将一张SSL证书发送到浏览器,而不能根据域名有选择性的发送证书。因此,您无法在一个IP地址的默认SSL 443端口下为多个虚拟主机配置多张证书。由于一个IP与一个端口号只能对应一张证书,因此我们可以采用以下方式来解决:为需要SSL加密的虚拟主机配置不同的IP地址,端口号都使用443。例如: www.domain1.com 的SSL使用 202.96.101.1:443 www.domain2.com的SSL使用 202.96.101.2:443,通过 https://www.domain1.com 和 https://www.domain2.com 访问这2个SSL网站了。
3. 如何建立一个仅使用SSLv2协议的服务器?
可以这样建立一个仅使用SSLv2协议及其密码算法的服务器:
在httpd.conf设置:
SSLProtocol -all +SSLv2
SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
4.如何建立一个仅接受高强度加密请求的SSL服务器?
如下设置为仅使用最强的七种密码算法:
在httpd.conf设置:
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
总结:
SSL可以用于在线交易时保护信用卡号、股票交易明细、账户信息等。当具有SSL功能的浏览器与WEB服务器(Apache)通信时,它们利用数字证书确认对方的身份。数字证书是由可信赖的第三方发放的,并被用于生成公共密钥。因此,采用了安全服务器证书的网站都会受SSL保护,其网页地址都具有“https”前缀,而非标准的“http”前缀。从目前钓鱼式攻击者的实践来看,大多没有这个标志,即使有,也可能是仿冒的比较容易识别,从而也这就进一步揭穿了他们的把戏。通过SSL(Secure socket layer)进行HTTP传输的协议就是HTTPS,它不但通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过获得认证证书CA,保证客户连接的服务器没有被假冒。
本文介绍如何通过SSL加密Apache以提高OpenWebMail的安全。SSL除了可以用在Web服务器与浏览器之间信息交换以外,还可以支持其他我们所熟识的网络应用。以TCP/IP网络层来看,SSL是定位在网络层之上的应用协议,任何以TCP/IP层以上的网络协议SSL都可以支持,因此HTTP、FTP、SMTP等皆是SSL的保护范围。
参考文献:Apache 2 with SSL/TLS: Step-by-Step, Part 1, Part 2.
http://www.securityfocus.com/infocus/1818
相关文章 | 热门文章 |
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |