王朝网络
分享
 
 
 

在FreeBSD上配置Apache+SSL

王朝system·作者佚名  2008-05-18
宽屏版  字体: |||超大  

作者:刘稳

文章摘要:

本文就开始就Apache+mod_ssl on FreeBSD进行讨论。

SSL(Secure Socket Layer)是一种在让可持有证书的浏览器软件(比如Internet Explorer、Netacpe Navigator)和WWW服务器(如Netscape的Netscape Enterprise Server 、ColdFusion Server等等)之间构造的安全通道中传输数据的协议,他运行在TCP/IP层之上、应用层之下,为应用程序提供加密数据通道。

Apache,众所周知,是UNIX世界最为流行的WWW服务器软件,性能好,可扩展性强。同时他也有相应的Win32版本。

在访问一些网站时,我们会注意到它的URL不是一般的HTTP://aa.bb.cc ,而是https://aa.bb.cc 这表明网站提供了HTTPS连接功能,即SSL over HTTP. 这保证了客户端与服务器的通信都是在SSL建立的加密通道中进行,绝对安全。为了让Apache服务器支持https,那么就必须配置mod_ssl模块。下文就开始就Apache+mod_ssl on FreeBSD进行讨论。

配置Apache服务器

首先,如果您的FreeBSD系统已经配置好Apache服务器,那么最好先备份一下,起码要把Apache的配置文件作一备份。如果需要直接往现有的安装上配置SSL支持,请阅读文章的最后一部分。

· 安装port

port的安装非常方便,由于笔者已经安装好了所有的port 框架,所以只需要 cd /usr/ports/www/apache13-modssl make install

这样就安装好了Apache的二进制文件,但是这还不够。

· Apache以什么方式运行?

比如,笔者需要Apache以www用户组的www用户运行(这也是出于安全性考虑)。如果发现针对apache的入侵,那么这只是针对这个组/用户的。所以还是推荐这样配置用户。

可以用adduser命令添加用户,也可以直接vipw,添加:

www:*:99:99::0:0:apache Daemon:/nonexistent:/sbin/nologin

同时需要添加www组,在/etc/group里面添加一行

www:*:99

· 配置文件

以下都需要在apache的配置文件中进行改变。缺省条件下,它是/usr/local/etc/apache/apache.conf

下列表格是笔者改动的一些设置

· 测试配置

配置好apache以后,运行# /usr/local/sbin/apachectl configtest Syntax OK

表示已经工作正常

· 启动和重起服务器

现在,一切已经工作正常,可以启动apache服务器

# /usr/local/sbin/apachectl startssl /usr/local/sbin/apachectl startssl: httpd started

启动可能需要一些时间,因为需要产生随机数。

如果你又做了一些配置上的改动,需要重起服务器,可以

# /usr/local/sbin/apachectl graceful /usr/local/sbin/apachectl graceful: httpd gracefully restarted

· 校错

如果启动出现问题,那么最好去查阅log文件, 比如

# tail apache_ssl_engine_log

[notice] SIGUSR1 received. Doing graceful restart

[notice] Apache/1.3.14 (Unix) mod_ssl/2.7.1 OpenSSL/0.9.4

configured -- resuming normal operations

然后,看看SSL引擎的log

# tail apache_ssl_engine_log

[info] Init: 1st restart round (already detached)

[info] Init: Reinitializing OpenSSL library

[info] Init: Seeding PRNG with 1160 bytes of entropy

[info] Init: Configuring temporary RSA private keys (512/1024 bits)

[info] Init: Configuring temporary DH parameters (512/1024 bits)

[info] Init: Initializing (virtual) servers for SSL

[info] Init: Configuring server new.host.name:443 for SSL protocol

[warn] Init: (new.host.name:443) RSA server certificate CommonName

(CN) `www.snakeoil.dom does NOT match server name!?

问题就一幕了然了,其中snakeoil是安装的时候缺省的证书,以后会用我们自己的证书来代替之。

· 别忘了自己的防火墙

如果你的机器是在防火墙后面,别忘了让防火墙允许对443端口的访问,这就是https使用的端口。

· 浏览一下

然后在浏览器里面输入http://server server是你的服务器的IP地址,然后会出现以下的字样:

Hey, it worked !

The SSL/TLS-aware Apache webserver wassuccessfully installed on this website.

然后同样的试试https://server, 应该也有同样的字眼。

· 获取一个证书

下面描述的是怎样产生自己的一个测试性证书。这个证书不能公开使用,但是怎样获得一个可以公开使用的证书就不在本文所讲述的范围了。

利用下列命令得到一个测试证书

# cd /usr/ports/www/apache13-modssl

# make certificate

笔者已经改动了所能够看懂的所有名称,其他的都跟缺省的相同,然后会在下列目录产生一个证书文件

/usr/ports/www/apache13-modssl/work/apache_1.3.14/conf

应该可以找到两个子目录,ssl.crt和ssl.key。这些目录需要拷贝到apache的根目录,但是之前笔者还是对原来的文件做了一个备份。

# cd /usr/local/etc/apache

# mv ssl.crt ssl.crt-default

# mv ssl.key ssl.key-default

然后把刚才生成的文件拷贝过去

# cd /usr/ports/www/apache13-modssl/work/apache_1.3.14/conf

# cp -rp ssl.key /usr/local/etc/apache

# cp -rp ssl.crt /usr/local/etc/apache

然后就需要重起apache,但是笔者刚开始用的是graceful restart,但是没能读取新的证书。于是就做了stop然后start.下面是屏幕输出

# /usr/local/sbin/apachectl startssl

Apache/1.3.14 mod_ssl/2.7.1 (Pass Phrase Dialog)

Some of your private key files are encrypted for security reasons.

In order to read them you have to provide us with the pass phrases.

Server new.host.name:443 (RSA)

Enter pass phrase:

Ok: Pass Phrase Dialog successful.

/usr/local/sbin/apachectl startssl: httpd started

这样就好了。同时笔者还在生成证书的时候加上了一个passphrase。WWW服务器启动的时候需要它。

· 取消passphrase

如果后来你有不想要passhprase了,那么也可以取消它。可以参阅http://www.modssl.org/docs/2.7/ssl_faq.html#ToC31 然而取消passphrase会有一些安全问题,上面的url里面也提到了,可以根据需要来斟酌。

· 确认安全问题

为了确认我的https连接确实是被经过加密的,于是在Netscape里面我查阅了View-->Page Info,里面有下列字样:

Security:This is secure document that uses a high-grade encryption key for U.S.domestic use only(RC4,128bit).

所以https连接确实是加密的。

· 笔者遇到的问题

当我试图在Netscape 4.74里面访问https://server时,下面的对话框冒了出来:When I tried to browse to the website from Netscape 4.74, I was created with the following message box:

SSL has recieved an error from the server indicating an incorrect Message Authentication Code. This could indicate a network error, a bad server implementation, or a security violation.

然后在/var/log/apache_error_log发现了下面的错误:

[error] mod_ssl: SSL handshake failed (server new.host.name:443,

client 10.0.0.99) (OpenSSL library error follows)

[error] OpenSSL: error:0407106B::lib(4) :func(113) :reason(107)

[error] OpenSSL: error:04065072::lib(4) :func(101) :reason(114)

[error] OpenSSL: error:1408F071::lib(20) :SSL3_GET_RECORD:bad

mac decode [Hint: Browser still remembered details of a

re-created server certificate?]

而在IE5.5里面却没有问题,实在很令人困扰。更好笑的是,第二天用Netscape再次访问的时候却好了!我想大概是因为我重起了 Netscape的进程,当没有重起的时候Netscape认为这是个新的证书,对自己不适用,重起以后就认得了(Netscape确实雄风不再,唉)。

· 在已有的安装上配置ssl

笔者开始时就尝试在已有的apache上安装SSL,按照以上的步骤。但是不幸的是,竟然把以前的apache也搞崩溃了。然后采取的办法就是:

· 为配置文件作一备份

· 卸载所有apache,ssl和php(从pkg_info的输出查看一下,然后用pkg_delete卸载)

· 按照上面的步骤重新来过

· 安装mod_php4

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有