设为首页 收藏本站
查看: 1074|回复: 0

[经验分享] 为Apache增加SSL安全保护

[复制链接]

尚未签到

发表于 2018-11-23 11:13:18 | 显示全部楼层 |阅读模式
  & 简介:
    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!





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638607-1-1.html 上篇帖子: 2008-04-09 11:37 apache动态编译/静态编译问题 下篇帖子: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表