`
isiqi
  • 浏览: 16561590 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

为Apache增加SSL安全保护

阅读更多

Apache增加SSL安全保护

5.1 简介
Netscape公司提出的安全套接层(Secure Sockets Layer)的概念,简称SSL。顾名思义,这是一个建立在Socket层的安全协议,它屏蔽了高层协议如telnet、ftp、http的区别,把安全建立在了传输之上。目前该协议以被广泛采纳,它所定义的很多功能都成了下一代IP协议IPV6的一部分。
5.2 所需资源
1.2.1 所需包
1. Apache 1.3.19.tar.gz
下载网址:
http://www.tux.org/pub/net/apache/dist/apache_1.3.17.tar.gz
2. openssl 0.9.6 要用他来生成密钥和签署证书
下载网址:
http://www.openssl.org/source/openssl-0.9.6.tar.gz
3. mod_ssl 2.8.0
下载网址:
http://www.modssl.org/source/mod_ssl-2.8.0-1.3.19.tar.gz
1.2.2 安装过程
1. 编译 OpenSSL:
cd /usr/local
tar zxvf openssl-0.9.6.tar.gz
cd /usr/local/openssl-0.9.6
./config --prefix=/usr/local/openssl
#注意,这里是 config 而不是 configure。
make
make test
make install
2. 编译MOD_SSL
cd /usr/local
tar zxvf mod_ssl-2.8.0-1.3.19
cd /usr/local/mod_ssl-2.8.0-1.3.19
./configure --with-apache=../apache_1.3.19
3. 编译apache
cd /usr/local
tar zxvf apache_1.3.19
cd /usr/local/apache_1.3.19
SSL_BASE=../openssl-0.9.6
./configure --prefix=/usr/local/apache_1.3.19
--enable-module=ssl
--enable-shared=ssl
make
4.生成CA
make certificate TYPE=custom
说明:这一步要生成你自己的 CA (如果你不知道,我也不能细说了,简单地说就是认证中心),和用它来为你的服务器签署证书。
STEP 0:
选择算法,使用缺省的 RSA
STEP 1:
生成 ca.key,CA的私人密钥
STEP 2:
为CA生成X.509的认证请求 ca.csr
要输入一些信息:
Country Name: cn 国家代码,两个字母
State or Provice name: An Hui 省份
Locality Name: Bengbu 城市名
Organization Name: Home CA 组织名,随便写吧
Organization Unit Name: Mine CA
Common Name: Mine CA
Email Address: sunstorm@263.net 我的Email
Certificate Validity: 4096 四千多天,够了吧
STEP 3:
生成CA的签名,ca.crt
STEP 4:
生成服务器的私人密钥,server.key
STEP 5:
生成服务器的认证请求,server.csr
要输入一些信息,和STEP 2类似,
不过注意 Common Name是你的网站域名,如 www.mydomain.com
Certificate Validity不要太大,365就可以了。
STEP 6:
为你的服务器签名,得到server.crt
STEP 7-8
为你的 ca.key 和 server.key 加密,要记住pass phrase。
下面完成apache的安装
make install
vi /usr/local/apache/conf/httpd.conf
修改BindAddress 和 ServerName
如果要改变 DocumentRoot 要记得把httpd.conf里SSL Virtual Host Context部分的DocumentRoot设定也改掉。
SSLCertificateFile和SSLCertificatKeyFile的设定也在SSL Virtual Host Context部分。
它可能是这样设定的:
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache_1.3.19/conf/ssl.key/server.key
要注意ssl.key ssl.crt等目录和文件的权限!
所有的key,csr,crt,prm文件都应该设为 400 属性!
5.3 手工签署证书
虽然在安装MOD_SSL时已经使用 make certificate 命令建立了服务器的证书签名,但是有时你可能需要改变它。
当然有很多自动的脚本可以实现它,但是最可靠的方法是手工签署
证书。首先我假定你已经安装好了openssl和MOD_SSL,如果你的
openssl安装时的prefix设置为/usr/local/openssl,那么
把/usr/local/openssl/bin加入执行文件查找路径。还需要MOD_SSL
源代码中的一个脚本,它在MOD_SSL的源代码目录树下的pkg.contrib目
录中,文件名为 sign.sh。将它拷贝到 /usr/local/openssl/bin 中。
先建立一个 CA 的证书,
首先为 CA 创建一个 RSA 私用密钥,
[S-1]
openssl genrsa -des3 -out ca.key 1024
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件,将文件属性改为400,并放在安全的地方。
[S-2]
chmod 400 ca.key
你可以用下列命令查看它的内容,
[S-3]
openssl rsa -noout -text -in ca.key
利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
[S-4]
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: An Hui 省份名称
Locality Name: Bengbu 城市名称
Organization Name: Family Network 公司名称
Organizational Unit Name: Home 部门名称
Common Name: Chen Yang 你的姓名
Email Address: sunstorm@263.net Email地址
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。
[S-5]
chmod 400 ca.crt
你可以用下列命令查看它的内容,
[S-6]
openssl x509 -noout -text -in ca.crt
下面要创建服务器证书签署请求,
首先为你的 Apache 创建一个 RSA 私用密钥:
[S-7]
openssl genrsa -des3 -out server.key 1024
这里也要设定pass phrase。
生成 server.key 文件,将文件属性改为400,并放在安全的地方。
[S-8]
chmod 400 server.key
你可以用下列命令查看它的内容,
[S-9]
openssl rsa -noout -text -in server.key
用 server.key 生成证书签署请求 CSR.
[S-10]
openssl req -new -key server.key -out server.csr
这里也要输入一些信息,和[S-4]中的内容类似。
至于 extra attributes 不用输入。
你可以查看 CSR 的细节
[S-11]
openssl req -noout -text -in server.csr
下面可以签署证书了,需要用到脚本 sign.sh
[S-12]
sign.sh server.csr
就可以得到server.crt。
将文件属性改为400,并放在安全的地方。
[S-13]
chmod 400 server.crt
删除CSR
[S-14]
rm server.csr
最后apache设置
如果你的apache编译参数prefix为/usr/local/apache
那么拷贝server.crt 和 server.key 到 /usr/local/apache/conf
修改httpd.conf
将下面的参数改为:
SSLCertificateFILE /usr/local/apache/conf/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/server.key
可以 apachectl startssl 试一下了。
5.4 测试及管理办法
cd /usr/local/apache_1.3.19
bin/apachectl startssl
提示输入pass phrase(就是你前面输入的,不知道你还记不记得)
输入后就启动了一个支持SSLapache
在IE里输入https://192.168.0.1/ 试试,注意是https而不是http!
5.5 小结
用电子认证服务器,可以进行公共密钥认证的管理、签署和废止。她使用的是X.509标准。
使用电子认证服务器,就可以自己管理公共密钥的认证,而不用依赖国外的CA服务中心。我们建立一个认证服务中心,就是为了能在我们的中国多媒体公众信息网上使用电子认证,以保证重要信息的安全。同时扩展该网的应用范围,把它建设成一个高速有效的企业单位联网平台。
分享到:
评论

相关推荐

    Linux中小企业服务器配置方案.zip

    第三章 第五节 为Apache增加SSL安全保护 第四章 邮件服务器--第一节 Sendmail服务器 第四章 第二节 Qmail服务器 第四章 第三节 三个重要的邮件系统相关协议 第五章 文件服务器--第一节 Samba服务器 第五章 第二节 ...

    linux中小企业服务器配置方案

    第三章 第五节 为Apache增加SSL安全保护 第四章 邮件服务器--第一节 Sendmail服务器 第四章 第二节 Qmail服务器 第四章 第三节 三个重要的邮件系统相关协议 第五章 文件服务器--第一节 Samba服务器 第五章 第二节 ...

    ApacheFtpServer之ssl配置

    通过在FTP的数据和控制通道上增加SSL/TLS的安全层,FTPS能够确保数据传输的安全性。 在实际应用中,FTPS通常被称为“FTP-SSL”或“FTP-over-SSL”。SSL协议本身负责在客户端和服务器之间建立一个加密的通道,从而...

    ubuntu linux 配置svn+apache+ssl

    【概述】 ...以上就是Ubuntu环境中配置SVN+Apache+SSL的详细步骤,包括安装、配置、权限设置以及SSL安全连接的建立。通过这样的设置,你的团队可以安全地协作开发项目,同时确保代码仓库受到保护。

    apache2配置ssl

    SSL(Secure Sockets Layer)是用于在互联网上实现安全通信的一种协议,它可以加密传输数据,保护用户的隐私信息。当配置Apache2以支持SSL时,通常是为了提供HTTPS服务,使网站能够进行安全的HTTP交易。 首先,让...

    apacheds-server-ssl-1.0.1.jar.zip

    在ApacheDS中启用SSL能够提供安全的数据传输,保护用户的隐私和数据完整性。本文将深入探讨如何在ApacheDS 1.0.1版本中配置SSL服务,并重点关注`apacheds-server-ssl-1.0.1.jar`这个文件在其中的作用。 首先,我们...

    apache安全及优化设置

    - 实现SSL/TLS加密连接,保护数据传输过程中的安全。 4. **防止目录遍历**: - 在配置文件中启用`Options -Indexes`来禁止列出目录内容。 - 确保没有默认的索引文件(如index.html)被设置,以防意外暴露目录...

    Apache安全配置

    - **Apache安装目录**:应设置为Apache用户具有读取权限,以确保Apache能够正常启动和运行。 - **Logs目录**:此目录用于存储日志文件,应仅允许Apache用户具有写入权限,以记录访问日志和错误日志。 - **Tomcat安装...

    SSL应用安全解决方案.pptx

    他们的F5 SSL安全网关是一种高性能、可扩展的平台,能够有效卸载SSL加密工作负载,减轻服务器压力,同时提供丰富的协议支持和多域名SNI(Server Name Indication)功能,简化证书管理。F5 SSL网关还支持快速提升SSL...

    恒生SSL安全代理系统

    它利用SSL协议为互联网上的信息发布和电子商务活动提供了安全保护。该系统成功部署于英特尔®至强®7300系列服务器平台上,并在此基础上实现了显著的性能提升,充分展现了至强7300系列服务器的强大处理能力。 #### ...

    mysql数据库,apache安全机制,登陆

    1. SSL/TLS 加密:Apache可以配置使用SSL(Secure Sockets Layer)或更现代的TLS(Transport Layer Security)协议,为数据传输提供加密,防止中间人攻击。 2. .htaccess 文件:通过在目录下放置.htaccess文件,可以...

    Apache2.0.59.msi

    3. **安全性**:Apache提供多种安全特性,包括基本身份验证、SSL/TLS加密、访问控制列表和防火墙集成,以保护服务器免受未经授权的访问。 4. **性能优化**:Apache可以通过多种方式优化性能,如多进程或线程模型、...

    Apache+Tomcat+mod_jk+mod_ssl配置笔记

    Apache、Tomcat、mod_jk和mod_ssl是构建高效、安全的Java web应用程序服务器环境的关键组件。本配置笔记将深入探讨如何将这些组件整合在一起,实现动态内容的处理和HTTPS安全连接。 首先,Apache HTTP Server作为...

    CIS-Apache-Tomcat-9-Benchmark-v1.1.0.pdf

    然而,随着网络攻击和数据泄露事件的增加,对 Apache Tomcat 服务器的安全性提出了更高的要求。CIS Apache Tomcat 9 基准测试文件正是为了满足这种需求而发布的。 本文档提供了一个详细的安全评估指南,涵盖了 ...

    ssl and tls essentials

    SSL与TLS作为网络安全领域不可或缺的一部分,在保护用户隐私、防止数据泄露等方面发挥着重要作用。随着技术的进步,未来的SSL/TLS协议将会更加完善、高效。对于企业和开发者来说,掌握SSL/TLS的基础知识并正确地应用...

    PHPStudy(小皮)ssl证书批量替换工具

    然而,在管理多个网站时,如果每个网站的SSL证书都需要手动更新,无疑会增加工作量。这就是"PHPStudy(小皮)SSL证书批量替换工具"发挥作用的地方。这个工具专为在Windows服务器上运行PHPStudy的用户设计,旨在简化...

    基于 MINA 的 TLS/SSL NIO Socket 实现(二)

    它们都是为网络通信提供安全性的标准协议,通过加密传输数据来保护信息的隐私。TLS是SSL的升级版,但两者常被合称为SSL。它们的主要功能包括身份验证、密钥交换和数据加密。 MINA提供了SSLFilter,这是一个关键组件...

    window版的apache安装程序(安装步骤),非源代码

    SSL是用于加密通信和保护数据安全的重要组件,如果你需要搭建一个安全的网站,可能需要下载包含SSL支持的版本。 安装步骤如下: 1. **下载安装文件**:首先,你需要从官方网站或可信的第三方源下载Apache的Windows...

    https,ssl,tsl,证书详细解读

    HTTPS,SSL,TLS,证书是互联网安全领域的重要概念,它们为网络通信提供了安全保障。下面将对这些主题进行详细的解读。 HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,通过使用SSL(Secure ...

Global site tag (gtag.js) - Google Analytics