前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为Apache增加SSL安全保护

为Apache增加SSL安全保护

作者头像
DevinGeng
发布2019-04-09 17:05:13
6850
发布2019-04-09 17:05:13
举报
文章被收录于专栏:云+技术云+技术

& 简介:   Netscape公司提出的安全套接层(Secure Sockets Layer)的概念,简称SSL。顾名思义,这是一个建立在Socket层的安全协议,它屏蔽了高层协议如telnet、ftp、http的区别,把安全建立在了传输之上。目前该协议以被广泛采纳,它所定义的很多功能都成了下一代IP协议IPV6的一部分。 & 所需资源:    &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(就是你前面输入的,不知道你还记不记得) 输入后就启动了一个支持SSL的apache 在IE里输入https://192.168.0.1/ 试试,注意是https而不是http!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-11-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档