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

推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
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社区 版权所有