热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Apache服务器配置SSL证书使用https访问

协议http明文协议版本1.0(一次连接(三次握手),一次请求)1.1(一次连接多次请求)httpsmod_ssl协议加密httpd-2.2.3-43.el5.i386.rpmhttpd的主要httpd-devel-2.2.3-43.el5.i386.rpm关于开发的包(可以不装)httpd-manual-2.2.3-
协议  http  明文协议 版本1.0 (一次连接(三次握手),一次请求)1.1(一次连接多次请求)    
 https   mod_ssl协议加密
httpd-2.2.3-43.el5.i386.rpm    httpd的主要 
httpd-devel-2.2.3-43.el5.i386.rpm    关于开发的包(可以不装)
httpd-manual-2.2.3-43.el5.i386.rpm    httpd的手册
Apache 的主根/etc/httpd

(1)目录安全性
主配置文档 /etc/httpd/conf/httpd.conf
Keepalive off    可以打开(一次连接多次请求)
Maxkeepaliverequest   15  最大连接请求
父进程处理用户请求:
1.每来一个用户请求,父进程就派生一个子进程去处理用户请求
2.父进程保持几个空闲的子进程
模块:
   判断是否有该模块,有就执行中间内容,没有就判断下一个模块
 StartServers       8         中间子进程数      
 MinSpareServers    5    最少空闲子进程           
 MaxSpareServers   20      最多空闲子进程        
 ServerLimit      256         同时在线用户数量
 MaxClients       256         可以根据用户访问数量,性能来调
 MaxRequestsPerChild  4000 每个子进程可以接受的请求后便终止掉,同时可释放内存垃圾
          
Listen  80   监听端口
Listen  800   创建基于虚拟主机的监听端口
LoadModule  后面是可以动态调用的模块  
User apache   运行apache的用户
Group apache   运行apache的用户组
UseCanonicalName Off     做虚拟主机就为off
DocumentRoot "/var/www/html"  默认该站点的主目录
目录安全性,实现站点得安全
    
    Options FollowSymLinks
    AllowOverride None
 
保证基本站点的安全性:

Options Indexes FollowSymLinks  选项indexes  目录浏览属性,主页没人内容时可以看到主目录的一些文件   fllowsymlinks  在主目录中可以防止符号链接进行跳转
AllowOverride None   身份验证(all)  AllowOverride  all
  Order allow,deny  先看deny,再看allow
     Allow from all  允许访问的主机(可以设定某个ip)
 
     Allow from all

做身份验证
编译一个文件:/var/www/html/.htaccess(身份验证的说明)
authuserfile  /var/www/html/.httpasswd (验证时的账号文件,取名可随意)
authtype  basic  (验证类型为基本)  
authname “plesae input your name”  交互文字
require   valid-user (有效的账号来访问,或者直接指定某个用户) 
创建账号文件: 
htpasswd -c  /var/www/html/.httpasswd   user1(认可的账户)       -c表示创建一个新的
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)  
Httpd -l  可以查看httpd的模块 访问日志 /var/log/httpd------>/etc/httpd/log
/var/www/html    基本站点
/etc/httpd/run   记录apache在运行时状态参数
/etc/httpd/run/httpd.pid   记录apache服务器运行时进程的id号(父进程号)
Ps -aux   查询所有进程  父进程不会为用户服务,子进程为用户服务  父进程管理子进程

(2)证书安全性
一、利用windows2008做ca
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)


Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)   

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)  

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)  
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)  

此时CA服务器器已经做好
CA客户端得像CA服务器做一个请求,使用一个工具openssl,用这个工具产生一个请求文件
[root@workstation253 ~]# cd /etc/httpd/
[root@workstation253 httpd]# mkdir certs (创建一个目录,存放所有请求文件,钥匙等)
[root@workstation253 httpd]# cd certs/
先做钥匙,在根据钥匙产生请求文件
[root@workstation253 certs]# openssl genrsa 1024     (产生非对称加密算法,1024位长度)
Generating RSA private key, 1024 bit long modulus
..............................................++++++
..++++++
e is 65537 (0x10001)
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDImDeuIH3QvvlQJOFHomeSEosRNb6+WbKmkNzkwC9dDr6h2YOp
K9JBM/d+ajQbJy0h94qaRqx6GurJCBCTCwuABEqZAzAUL4N/SmMbNnNGI7kV51C0
2GAIeBIOVMaCE7FUvlIpnGt7kA6hEWXtRPA1pT3NHQMC1Hy6qqDh2P1gjQIDAQAB
AoGAQwJ+jz+xZ/t0A67eRvTcznI9XLlsh+AlCvmXoR8Gc3rKefzUu7201i1K/0Lx
NyTmMdOkzJbRZVT6m7+C8ewdocWrkvlsZpq+eZWqCLFghDBTbSObLBFpD45L/bvb
j8D94ICWZWzU2QLNHEcQ3CzCP2HWnPrZrXFtDgBv5QiyiGECQQDvZqjtluWlG+m6
Aq1/gLczkEx9bSikoBLgva56MhzxB9julQlyUnuto7nFJ8Rhr1+RlC5NofdH6Y8d
mkxR/JBZAkEA1oC/jrZnIlt3WNaYor04CSz3rvIKFa9d9fTgG2ROKdWVseMa6VlZ
aXYazfFMGboj5O+8MJPHVF8SXp3RoqarVQJBALWax9zr0isM4KGldF27k73+4bdn
/iPb9lYcLeYua7wAOvTJhBAAOCgBgmPoBdYghjvWD8X+bqpTp6hKK0kqcYkCQCUq
O4Zjji0CwgPvcpTHyhy04Nk78IlfUB1cZzP3xh8zdXNT0QbbR0Whg/VouHHAsZVq
ACY+hIvWyR0BpR/UVt0CQQCmPbK1k9pom9PaFK9iBdM9WiOq56GjFnMIU9T+j+9z
oc+MO+YEh2lFZxriy3IE2bcAeKayESTfHbDlHfFIGMu0
-----END RSA PRIVATE KEY-----  (产生了私钥,但是里面包含公钥)
[root@workstation253 certs]# openssl genrsa 1024 >httpd.key   (产生钥匙文件)
Generating RSA private key, 1024 bit long modulus
........++++++
.............................++++++
e is 65537 (0x10001)
[root@workstation253 certs]# chmod 600 httpd.key  (为了安全起见更改钥匙文件的权限)
根据钥匙文件产生一个证书的请求 
[root@workstation253 certs]# openssl req -new -key httpd.key -out httpd.csr 输出请求文件
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN    国家
State or Province Name (full name) [Berkshire]:HENAN   省份
Locality Name (eg, city) [Newbury]:ZHENGZHOU    城市
Organization Name (eg, company) [My Company Ltd]:ll   单位名
Organizational Unit Name (eg, section) []:tec     部门名
Common Name (eg, your name or your server's hostname) []:www.ll.com   为哪个服务器申请
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@workstation253 certs]# ll
total 8
-rw-r--r-- 1 root root 643 Sep  8 00:55 httpd.csr   产生了这个请求文件
-rw------- 1 root root 887 Sep  8 00:47 httpd.key
CA客户端把请求文件发给CA
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)  
 
 
CA客户端证书的下载:
 
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)  
将证书转移:
root@ttttttttt Server]# cd /etc/httpd/certs/
[root@ttttttttt certs]# ll
-rw-r--r-- 1 root root 1016 09-04 11:38 certnew.cer
-rw-r--r-- 1 root root  643 09-04 11:01 httpd.csr
-rw------- 1 root root  891 09-04 11:00 httpd.key
CA客户端证书的安装:
[root@ttttttttt Server]# yum -y install  mod_ssl    安装mod_ss包
[root@ttttttttt certs]# vim /etc/httpd/conf.d/ssl.conf     编译mod_ss的配置文件
LoadModule ssl_module modules/mod_ssl.so        ssl动态模块
Listen 443                             监听端口为443
SSLCertificateFile /etc/httpd/certs/certnew.cer      指明证书文件  
SSLCertificateKeyFile /etc/httpd/certs/httpd.key     指明证书对应密钥文件
然后重启http服务
在www服务器客户端访问这个接受过证书的CA证书的www服务器时,将服务器的证书设置为受信任:
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)   
  
使用linux做CA
自己做自签发的证书:
(1)产生自己的私钥并指明CA的目录
[root@ttttttttt ~]# cd /etc/pki/CA/       切换待CA目录下
[root@ttttttttt CA]# ll
drwx------ 2 root root 4096 2010-03-12 private        
[root@ttttttttt CA]# openssl genrsa 1024 >private/cakey.pem
Generating RSA private key, 1024 bit long modulus
....................................................................................++++++
..................++++++
e is 65537 (0x10001)
[root@ttttttttt CA]# chmod 600 private/*             更改私钥文件的权限
 编译[root@ttttttttt ~]# vim /etc/pki/tls/openssl.cnf 
45 dir             = /etc/pki/CA       指明CA的目录
(2)产生一个自签发的证书(不需要请求文件)
[root@ttttttttt CA]# openssl  req -x509 -new -key private/cakey.pem -out cacert.pem -days 3655 
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:HENAN
Locality Name (eg, city) [Newbury]:ZHENGZHOU
Organization Name (eg, company) [My Company Ltd]:TT
Organizational Unit Name (eg, section) []:TEC
Common Name (eg, your name or your server's hostname) []:rootca.tt.com
Email Address []:
[root@ttttttttt CA]# ll
-rw-r--r-- 1 root root 1123 09-05 03:09 cacert.pem  产生的证书文件
drwx------ 2 root root 4096 09-05 03:03 private
(3)让CA给服务器颁发证
[root@ttttttttt CA]# cd /etc/httpd/certs/
[root@ttttttttt certs]# opensslgenrsa 1024 >httpd.key
-bash: opensslgenrsa: command not found
You have new mail in /var/spool/mail/root
[root@ttttttttt certs]# openssl genrsa 1024 >httpd.key
Generating RSA private key, 1024 bit long modulus
...++++++
......................................++++++
e is 65537 (0x10001)               产生一个钥匙文件
[root@ttttttttt certs]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]:CN   
State or Province Name (full name) [Berkshire]:HENAN
Locality Name (eg, city) [Newbury]:ZHENGZHOU
Organization Name (eg, company) [My Company Ltd]:LL
[root@ttttttttt certs]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:HENAN
Locality Name (eg, city) [Newbury]:ZHENGZHOU
Organization Name (eg, company) [My Company Ltd]:TT
Organizational Unit Name (eg, section) []:TEC
Common Name (eg, your name or your server's hostname) []:www.ll.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
 产生一个请求
[root@ttttttttt certs]# ll
-rw-r--r-- 1 root root 643 09-05 03:23 httpd.csr    产生的请求文件
-rw-r--r-- 1 root root 887 09-05 03:20 httpd.key    产生的密钥文件
(4)为客户端签发证书
[root@ttttttttt etc]# cd /etc/httpd/certs/
[root@ttttttttt certs]# openssl ca -in httpd.csr -out httpd.crt
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Sep  4 19:50:10 2011 GMT
            Not After : Sep  3 19:50:10 2012 GMT
        Subject:
            countryName               = CN       客户端请求的信息
            stateOrProvinceName       = HENAN
            organizationName          = TT
            organizationalUnitName    = TEC
            commonName                = www.ll.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                B1:0E:57:5F:90:70:1E:6A:EA:CC:C4:8F:BB:AC:47:9C:5E:2B:2A:C6
            X509v3 Authority Key Identifier: 
                keyid:B4:F1:BF:63:BF:B9:73:DD:DF:E7:29:39:D9:01:86:4A:F8:00:64:39
Certificate is to be certified until Sep  3 19:50:10 2012 GMT (365 days)
Sign the certificate? [y/n]:y    是否签发
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@ttttttttt certs]# ll
-rw-r--r-- 1 root root 3047 09-05 03:50 httpd.crt     产生它
-rw-r--r-- 1 root root  643 09-05 03:23 httpd.csr
-rw-r--r-- 1 root root  887 09-05 03:20 httpd.key
(5)改变一下主配置,编译/etc/httpd/conf.d/ssl.conf 
   SSLCertificateFile /etc/httpd/certs/httpd.crt
   SSLCertificateKeyFile /etc/httpd/certs/httpd.key
测试语法是否错误,可以使用了httpd  -t       然后重启httpd
(6)使用www客户端使得证书被信任
[root@ttttttttt certs]# vim /etc/httpd/conf.d/ssl.conf 
131 SSLCertificateChainFile /etc/pki/CA/cacert.pem
SSLCertificateKeyFile /etc/httpd/certs/httpd.key
然后重启httpd
用客户端浏览器打开:
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

解决办法:
编译 /etc/httpd/conf.d/ssl.conf 
SSLCertificateChainFile /etc/pki/CA/cacert.pem    添加路径
然后重启httpd
再在客户端打开就有路径了,并将证书安装
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)  

客户端安装证书后,在受信任的根证书办法机构中可以看到
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

做一下域名的解析后,直接访问域名就不会有证书的安全提示了:
Apache服务器的搭建(1)---站点的安全(ca 2008 linux 制作) - zhuzhu - 五事九思 (大连Linux主机维护)

推荐阅读
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文详细介绍了在 Red Hat Linux 系统上安装 GCC 4.4.2 的步骤,包括必要的依赖库的安装及常见问题的解决方法。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文探讨了在Windows系统中运行Apache服务器时频繁出现崩溃的问题,并提供了多种可能的解决方案和建议。错误日志显示多个子进程因达到最大请求限制而退出。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
author-avatar
也曾悲摧过_192
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有