Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19267134
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: 网络与安全

2008-05-31 22:03:36

在Web站点上,为了在非保密的Internet上传输保密或敏感信息,需要设置SSL.本文主要讲述在RED HAT7.1中进行SSL配置的基本过程.
  
  在RED HAT7.1中进行SSL配置的基本过程主要包含安装APACHE和OPENSSL、创建自己的CA、签署证书、更改httpd.conf几个步骤。
  
  安装APACHE和OPENSSL
  
  RED HAT7.1中已经自带了APACHE1.3.19和OPENSSL0.9.6,在安装LINUX时选择安装Web Server和MOD_SSL即可,同时,配置Linux的起动模块,使HTTPD在Linux起动时自动运行。
  
  创建自己的CA
  
  # cd /usr/share/ssl/misc
  
  # ./CA -newca
  
  屏幕上出现如下的提示:CA certificate filename (or enter to create)
  
  这是要求输入要创建的CA的证书文件名, 可以直接回车或输入证书文件名。
  
  Making CA certificate ...
  
  Using configuration from /usr/share/ssl/openssl.cnf
  
  Generating a 1024 bit RSA private key
  
  .....++++++
  
  writing new private key to './demoCA/private/./cakey.pem'
  
  Enter PEM pass phrase:
  
  Verifying password - Enter PEM pass phrase:-
  
  此时要求输入和验证CA的私钥口令、国家代码(中国是CN)、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。
  
  至此,在当前目录下生成了demoCA的目录,CA的证书就在该目录下,文件名为cacert.pem
  生成服务器的证书请求
  
  # ./CA -newreq
  
  屏幕上出现如下的提示:
  
  Using configuration from /usr/share/ssl/openssl.cnf
  
  Generating a 1024 bit RSA private key
  
  .++++++
  
  writing new private key to 'newreq.pem'
  
  Enter PEM pass phrase:
  
  Verifying password - Enter PEM pass phrase:
  
  此时要求输入和验证服务器的私钥口令、国家代码(中国是CN)、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。
  
  Please enter the following 'extra' attributes
  
  to be sent with your certificate request
  
  A challenge password []:
  
  An optional company name []:
  
  .Request (and private key) is in newreq.pem
  
  这是要求输入服务器的相关信息。
  
  此时,在当前目录下生成了一个名为newreq.pem的文件,包含了要生成服务器数字证书的请求。
  
  签署证书
  
  # ./CA -sign
  
  屏幕上出现如下的提示:
  
  Using configuration from /usr/share/ssl/openssl.cnf
  
  Enter PEM pass phrase:
  
  此时一样需要输入CA的私钥口令、国家代码(中国是CN)、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。
  
  Certificate is to be certified until Nov 19 13:46:19 2002 GMT (365 days)
  
  Sign the certificate? [y/n]:y
  
  这时显示证书请求文件中的各项信息,并询问是否要签署证书,回答y,进行签署。
  
  1 out of 1 certificate requests certified, commit? [y/n]y
  
  回答y,会显示已经签署的证书的信息,并在当前目录下生成服务器的证书文件newcert.pem。
  更改/etc/httpd/conf/httpd.conf
  
  1) 更改SSL的根目录
  
  建立一个新目录,如/var/www/sslhtml。
  
  在<IfDefine HAVE_SSL>中修改
  
  DocumentRoot “/var/www/html”为DocumentRoot “/var/www/sslhtml”
  
  2) 更改服务器的证书文件的相关配置
  
  # cp newcert.pem /etc/httpd/conf/ssl.crt/server.pem
  
  在<IfDefine HAVE_SSL>中修改
  
  SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
  
  SSLCertificateFile /etc/httpd/conf/ssl.crt/server.pem
  
  3) 更改服务器的证书密钥文件的相关配置
  
  # cp newreq.pem /etc/httpd/conf/ssl.key/server.pem
  
  在<IfDefine HAVE_SSL>中修改
  
  SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
  
  为SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.pem
  
  示例文件
  
  在SSL的根目录中生成一个index.html,它是如下所示:
  
  <html>
  
  这是SSL示例!
  
  </html>
  
  测试
  
  假如Web服务器的DNS名称是dell.es.com.
  
  在浏览器的URL地址栏里输入 ,浏览器便会显示APACHE安装时确省的Test Page.
  
  在浏览器的URL地址栏里输入 ,注意:是 https 而不是http !
  
  浏览器会提示站点已经采用了SSL进行数据的加密传输.由于我们的CA证书不是浏览器缺省的信任的根证书,所以,浏览器会说无法确认服务器的证书可信。暂时不管,一直NEXT,最后,浏览器会显示:这是SSL示例!
  
  可以把CA的证书放在非SSL的站点上,让浏览器下载并安装CA证书,并将其设置成可信任的根证书,便可解决上面的问题.8 解除HTTPD起动时的口令输入。
  
  由于安全的原因,Web服务器的私钥是口令加密了的,每次重新起动HTTPD或Linux时,都会要求输入Web服务器的私钥的口令。
  
  如果要解除HTTPD起动时的口令输入,可以这样:
  
  # cd /etc/httpd/conf/ssl.key
  
  # cp server.pem server.pem.org
  
  # openssl rsa -in server.pem.org -out server.pem
  
  # chmod 400 server.pem
  
  此时,Web服务器的私钥已经没有口令加密,一定要确保server.pem文件除root外,任何用户均无权读取它。
  
  以上所述,只是SSL配置的最基本的几个过程。详细的配置,请参考随APACHE带的MOD_SSL部分的文档。
阅读(335) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~