热门标签 | 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主机维护)

推荐阅读
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • ZooKeeper集群脑裂问题及其解决方案
    本文深入探讨了ZooKeeper集群中可能出现的脑裂问题,分析其成因,并提供了多种有效的解决方案,确保集群在高可用性环境下的稳定运行。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
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社区 版权所有