|
|
|
|
移动端

8.4.7 HTTPS配置(3)

《Linux服务器配置全程实录》第8章配置Web服务器,在本章中将介绍通过Apache配置HTTP、HTTPS、WebDAV、反向代理、安全配置、多种用户认证方式、虚拟主机,JSP环境搭建,LAMP环境搭建以及使用Lighttpd实现HTTP、HTTPS、虚拟主机等的相关内容。本节为大家介绍HTTPS配置。

作者:张勤/杨章明来源:人民邮电出版社|2011-08-11 09:08

年前最后一场技术盛宴 | 1.27与京东、日志易、美团技术大咖畅聊智能化运维发展趋势!


8.4.7  HTTPS配置(3)

(7)建立CA签署证书的脚本,该脚本本应在mod_ssl的源码包的pkg.contrib目录中,但由于本章并不是使用源码包安装mod_ssl,所以一种方法是下载mod_ssl的源码包后,在其中找到sign.sh脚本使用,还有一种方法是建立一个脚本文件输入以下内容(就是mod_ssl源码包中sign.sh的内容)。

  1. #!/bin/sh  
  2. CSR=$1  
  3. if [ $# -ne 1 ]; then  
  4.       echo "Usage: sign.sign <whatever>.csr"; exit 1  
  5. fi  
  6. if [ ! -f $CSR ]; then  
  7.       echo "CSR not found: $CSR"; exit 1  
  8. fi  
  9. case $CSR in  
  10.      *.csr ) CERT="`echo $CSR | sed -e 's/\.csr/.crt/'`" ;;  
  11.          * ) CERT="$CSR.crt" ;;  
  12. esac  
  13.  
  14. if [ ! -d ca.db.certs ]; then  
  15.       mkdir ca.db.certs  
  16. fi  
  17. if [ ! -f ca.db.serial ]; then  
  18.       echo '01' >ca.db.serial  
  19. fi  
  20. if [ ! -f ca.db.index ]; then  
  21.       cp /dev/null ca.db.index  
  22. fi  
  23.  
  24. cat >ca.config <<EOT 
  25.  
  26. [ ca ]  
  27. default_ca              = CA_own 
  28.  
  29. [ CA_own ]  
  30. dir                             = .  
  31. certs                           = \$dir  
  32. new_certs_dir               = \$dir/ca.db.certs  
  33. database                    = \$dir/ca.db.index  
  34. serial                      = \$dir/ca.db.serial  
  35. RANDFILE                    = \$dir/ca.db.rand  
  36. certificate                 = \$dir/ca.crt  
  37. private_key                 = \$dir/ca.key  
  38. default_days                = 365 
  39. default_crl_days            = 30 
  40. default_md                      = md5 
  41. preserve                        = no 
  42. policy                      = policy_anything 
  43.  
  44. [ policy_anything ]  
  45. countryName                 = optional 
  46. stateOrProvinceName         = optional 
  47. localityName                = optional 
  48. organizationName            = optional 
  49. organizationalUnitName  = optional 
  50. commonName                  = supplied 
  51. emailAddress                = optional 
  52. EOT  
  53.  
  54. echo "CA signing: $CSR -> $CERT:"  
  55. openssl ca -config ca.config -out $CERT -infiles $CSR  
  56.  
  57. echo "CA verifying: $CERT <-> CA cert"  
  58. openssl verify -CAfile ca.crt $CERT  
  59.  
  60. rm -f ca.config  
  61. rm -f ca.db.serial.old  
  62. rm -f ca.db.index.old  
  63.  
  64. exit 0  

(8)使用脚本让CA签署网站的证书请求,在CA签署网站的证书请求时会要求输入CA私钥的密码,如图8-34所示。

  1. cd /etc/httpd/.sslkey  
  2. #sign.sh是上一步建立的脚本文件名。  
  3. ./sign.sh server.csr  
 
(点击查看大图)图8-34  CA签署网站证书
(9)为了保证证书文件安全,可修改证书存放目录的权限。
  1. chmod -R 400 /etc/httpd/.sslkey  
  2. (10)配置网站为HTTPS。  
  3. NameVirtualHost 192.168.0.10:80  
  4.  
  5. <VirtualHost 192.168.0.10:443>                              ①  
  6.     DocumentRoot /var/site/bbs.example.com  
  7.     ServerName bbs.example.com  
  8.  
  9.     SSLEngine on                                                ②  
  10.     SSLCertificateFile /etc/httpd/.sslkey/server.crt            ③  
  11.     SSLCertificateKeyFile /etc/httpd/.sslkey/server.key ④  
  12.  
  13. </VirtualHost> 
  14.  
  15. <VirtualHost 192.168.0.10:80> 
  16.     DocumentRoot /var/site/blog.example.com  
  17.     ServerName blog.example.com  
  18. </VirtualHost> 

其中各行含义如下。

①:将网站侦听端口改为443。

②:开启SSL。

③:指定证书文件。

④:指定私钥文件。

在上述配置完成后,可将/etc/httpd/.sslkey/ca.crt(CA的信任证书)文件安装到客户端(把ca.crt复制到Windows客户端后,双击后直接点击下一步安装),这样就不会出现如图8-27的警告了。

提示:使用上述配置后,在重新启动Apache时会要求输入网站私钥的密码,如图8-35所示。

 
图8-35  输入网站私钥的密码
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络管理员考试全真模拟试题与解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》的要求,参照《网络管理员教程》及近年来考试试题编写的。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊