安装环境:

OS:contos 6.4

httpd:httpd-2.2.15-59.el6.centos.i686.rpm

openssl:openssl-1.0.1e-57.el6.i686.rpm

mod_ssl:mod_ssl-2.2.15-59.el6.centos.i686.rpm

一、配置apache的用户认证

用户认证:用户需在进入web时,登录合法的用户,认证通过后,才能进入访问web服务器

(1)安装httpd,编辑/etc/httpd/conf/httpd.conf

在文件中大约338行左右有一行

“AllowOverride  none” 这个是系统默认的,无控制列表,见附。

我们这里将none改为AuthConfig,并添加以下几行内容,如下:

AllowOverride AuthConfig 
AuthType Basic # 用户认证类型 
AuthName "Restricted Site" # 认证时显示的名字 
AuthUserFile /etc/httpd/conf/htpasswd # 认证时用户的账号密码文件 
#AuthGroupFile /etc/httpd/conf/htgroup #基于组的认证 
# Require user tom # 只有tom用户才能登录 
# Require group myusers # 允许哪个组中的用户登录 
Require valid-user # 出现在账号密码文件中的用户都能登录

ps:若不支持utf-8,请将中文注释去掉

(2)创建/etc/httpd/conf/htpasswd文件,及用户

使用htpasswd命令创建用户,在第一次创建时加-c可创建文件

htpasswd -c -m /etc/httpd/conf/htpasswd  dyz

#连续输入两次密码

# htpasswd -m /etc/httpd/conf/htpasswd  zzz

#连续输入两次密码

(3)若开启基于组的认证,则创建组文件/etc/httpd/conf/htgroup

在文件中写入一行

myusers:  dyz  zzz

二、配置apache的ssl双向认证

ssl单向认证:只服务端部署ssl证书,向用户提供了身份认证

ssl双向认证:服务端部署ssl证书,向用户提供了身份认证。并且服务段需要客户端提供身份认证,只能是服务端允许的客户能去访问,安全性更高

(1)安装openssl,使用openssl生成证书

生成客户端证书密钥:

openssl genrsa -des3 -out client.key 1024

生成客户端证书签名请求:
openssl req -new -key client.key -out client.csr

生成CA证书密钥:
openssl genrsa -des3 -out ca.key 1024

生成CA证书:
openssl req -new -x509 -keyout ca.key -out ca.crt

生成客户端证书:
openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -o
ut client.crt

生成浏览器支持的证书格式p12:

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

输入的密码,在将证书导入浏览器时能用到

ps:使用openssl verify -CAfile ca.crt client.crt命令,验证客户端证书和CA证书

(2)安装mod_ssl,编辑/etc/httpd/conf.d/ssl.conf

设置客户端证书目录:SSLCertificateFile /etc/pki/tls/certs/client.crt

设置客户端证书密钥目录:SSLCertificateKeyFile /etc/pki/tls/certs/client.key

设置CA证书目录:SSLCACertificateFile /etc/pki/tls/certs/ca.crt

开启要求进行客户端认证:

取消注释

SSLVerifyClient require
SSLVerifyDepth 10

(3)将第一步生成的证书及证书密钥放入ssl.conf配置文件指定的目录/etc/pki/tls/certs/

(4)重启httpd服务:service httpd restart

apache用户认证,ssl双向认证配置的更多相关文章

  1. tomcat配置SSL双向认证

    一.SSL简单介绍 SSL(Secure Sockets Layer 安全套接层)就是一种协议(规范),用于保障客户端和服务器端通信的安全,以免通信时传输的信息被窃取或者修改. 怎样保障数据传输安全? ...

  2. nginx支持ssl双向认证配置

    nginx支持ssl双向认证配置 listen 443; server_name test.com; ssl on; ssl_certificate server.crt; //server端公钥 s ...

  3. SSL双向认证(高清版)

    介绍了SSL双向认证的一些基本问题,以及使用Nginx+PHP基于它搭建https的Webservice. 之前的方式只是实现1:1的模式,昨天同事继续实现了n:1的模式,这里我再整理记录下. 由于n ...

  4. SSL双向认证和SSL单向认证的流程和区别

    refs: SSL双向认证和SSL单向认证的区别https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证!https://cloud.tenc ...

  5. php实现https(tls/ssl)双向认证

    php实现https(tls/ssl)双向认证 通常情况下,在部署https的时候,是基于ssl单向认证的,也就是说只要客户端认证服务器,而服务器不需要认证客户端. 但在一些安全性较高的场景,如银行, ...

  6. SSL单向认证和双向认证说明

    SSL单向认证和双向认证说明 一.SSL双向认证具体过程 浏览器发送一个连接请求给安全服务器. 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. 客户浏览器检查服务器送过来的证书是否是由自己 ...

  7. 在 kafka 的 broke 和 client 之间加入 SSL 双向认证

    在 kafka 的 broke 和 client 之间加入 SSL 双向认证https://blog.csdn.net/hohoo1990/article/details/79110031 kafka ...

  8. Nginx、SSL双向认证、PHP、SOAP、Webservice、https

    本文是1:1模式,N:1模式请参见新的一篇博客<SSL双向认证(高清版)> ----------------------------------------------------- 我是 ...

  9. ssl双向认证

    ssl双向认证 一.背景知识 1.名词解释 ca.key: 根证书的私钥 , ca.crt: 根证书的签名证书 server.key, server.crt client.key, client.cr ...

随机推荐

  1. struts2(二) 表单参数自动封装和参数类型自动转换

    前篇文章对struts2的一个入门,重点是对struts2的架构图有一个大概的了解即可,之后的几篇文章,就是细化struts2,将struts2中的各种功能进行梳理,其实学完之后,对struts2的使 ...

  2. python学习之路-书籍推荐

    学python有一段时间了,总结走来的路,发现还是看书靠谱,当然也要多实践. 一.入门篇 1.简明 Python 教程(A Byte of python) http://www.kuqin.com/a ...

  3. MySQL从库忽略某些错误

    z熬配置MySQL主从同步的时候常常会因为主库的中SQL语句的错误造成从库的同步出现错误,一旦从库同步出现错误就会造成同步的卡壳影响后续的同步: 可以在从库的配置文件中加入如下的参数,使从库可以自动忽 ...

  4. CrawlScript脚本语言实现网络爬虫

    前段时间我们学习了几种爬虫技术,我们来回顾一下,webCollector,htmlParser,Jsoup,各有优劣,但是如果能灵活运用,其实都是很不错的.那么,今天呢,我们来学习一种脚本语言,这是一 ...

  5. Angular2开发拙见——组件规划篇

    本文集中讲讲笔者目前使用ng2来开发项目时对其组件的使用的个人的一些拙劣的经验. 先简单讲讲从ng1到ng2框架下组件的职责与地位: ng1中的一大特色--指令,分为属性型.标签型.css类型和注释型 ...

  6. react+webpack开发环境配置

    react是目前非常热门的前端框架,提倡组件化开发.所谓的组件,简单理解,就是一个独立的页面部件(包括页面模版,样式,逻辑等),它是一个独立的整体. webpack,是一个模块打包工具,其主要功能,就 ...

  7. git操作详解

    前言:一般公司git的master主干与线上代码保持一致,在使用git的时候,偶尔会发生一些莫名其妙的事情,很容易导致运营事故.so- 总结一下经常使用的git命令以及git的一些小坑,方便日后查阅 ...

  8. centos 6.5 搭建JSP运行环境

    一.安装nginx yum install nginx #安装nginx,根据提示,输入Y安装即可成功安装 service nginx start #启动 chkconfig nginx on #设为 ...

  9. ElasticSearch查询 第五篇:布尔查询

    布尔查询是最常用的组合查询,不仅将多个查询条件组合在一起,并且将查询的结果和结果的评分组合在一起.当查询条件是多个表达式的组合时,布尔查询非常有用,实际上,布尔查询把多个子查询组合(combine)成 ...

  10. python_嵌套列表变成普通列表

    如何把[1, 5, 6, [2, 7, [3, [4, 5, 6]]]]变成[1, 5, 6, 2, 7, 3, 4, 5, 6]? 思考: -- for循环每次都遍历列表一层 -- 把取出的单个值加 ...