apache用户认证,ssl双向认证配置
安装环境:
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双向认证配置的更多相关文章
- tomcat配置SSL双向认证
一.SSL简单介绍 SSL(Secure Sockets Layer 安全套接层)就是一种协议(规范),用于保障客户端和服务器端通信的安全,以免通信时传输的信息被窃取或者修改. 怎样保障数据传输安全? ...
- nginx支持ssl双向认证配置
nginx支持ssl双向认证配置 listen 443; server_name test.com; ssl on; ssl_certificate server.crt; //server端公钥 s ...
- SSL双向认证(高清版)
介绍了SSL双向认证的一些基本问题,以及使用Nginx+PHP基于它搭建https的Webservice. 之前的方式只是实现1:1的模式,昨天同事继续实现了n:1的模式,这里我再整理记录下. 由于n ...
- SSL双向认证和SSL单向认证的流程和区别
refs: SSL双向认证和SSL单向认证的区别https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证!https://cloud.tenc ...
- php实现https(tls/ssl)双向认证
php实现https(tls/ssl)双向认证 通常情况下,在部署https的时候,是基于ssl单向认证的,也就是说只要客户端认证服务器,而服务器不需要认证客户端. 但在一些安全性较高的场景,如银行, ...
- SSL单向认证和双向认证说明
SSL单向认证和双向认证说明 一.SSL双向认证具体过程 浏览器发送一个连接请求给安全服务器. 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. 客户浏览器检查服务器送过来的证书是否是由自己 ...
- 在 kafka 的 broke 和 client 之间加入 SSL 双向认证
在 kafka 的 broke 和 client 之间加入 SSL 双向认证https://blog.csdn.net/hohoo1990/article/details/79110031 kafka ...
- Nginx、SSL双向认证、PHP、SOAP、Webservice、https
本文是1:1模式,N:1模式请参见新的一篇博客<SSL双向认证(高清版)> ----------------------------------------------------- 我是 ...
- ssl双向认证
ssl双向认证 一.背景知识 1.名词解释 ca.key: 根证书的私钥 , ca.crt: 根证书的签名证书 server.key, server.crt client.key, client.cr ...
随机推荐
- 第一天—ListView||内容提供者
###ListView1.创建一个ListView的控件2.在Layout包中创建一个布局,用来指定ListView每个条目的布局 例:Item3.找到ListView控件4.创建一个类继承适配器三个 ...
- C++中的动态链接库
一,动态链接库的基本概念 1.DLL(Dynamic Linker Library)的概念 可以把DLL看做是一个仓库,它提供了一些可以直接拿来用的变量,函数或者类(但是不建议从DLL中获取变量),在 ...
- Alamofire源码解读系列(九)之响应封装(Response)
本篇主要带来Alamofire中Response的解读 前言 在每篇文章的前言部分,我都会把我认为的本篇最重要的内容提前讲一下.我更想同大家分享这些顶级框架在设计和编码层次究竟有哪些过人的地方?当然, ...
- JDBC连接Oracle数据库代码
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.S ...
- centos5.11架设svn(svn系列 架设服务器 知识一总结)
♣svn是什么? ♣安装 --yum安装 --创建svn版本库目录 --创建版本库 --进入conf目录进行配置(该svn版本库配置文件) --启动svn版本库 - ...
- XJOI1571爱心蜗牛【树形动规】
爱心蜗牛 猫猫把嘴伸进池子里,正准备"吸"鱼吃,却听到门铃响了.猫猫擦了擦脸上的水,打开门一看,那人正是她的好朋友--川川.川川手里拿着一辆玩具汽车,对猫猫说:"这是我的 ...
- Java对象的内存模型(一)
前言 新人一枚,刚刚入门编程不久,各方面都在学习当中,博文有什么错误的地方,希望我们可以多多交流! 最近,在开发App后台过程中,需要将项目部署到云服务器上.而云服务器的内存大小却只有1G.要如何做到 ...
- 【Electron】Electron开发入门(八):自定义electron框架外壳(shell)的菜单(Menu)
1.自定义electron框架外壳(shell)的菜单(Menu) electron的main.js里代码: const Menu = require('electron').Menu; var te ...
- 获取VB类模块成员函数指针(转)
最近在做一些VB6.VBA的项目,被如何获取类模块中的函数指针这个问题所困扰,收集整理后,有2分资料值得收藏,特将关键部分留存,以备后续查找. 参照连接1:http://www.cnblogs.com ...
- 各位Coder看过来
为了丰富博客内容,也为了解决一些实际的问题,现准备出一系列博文,内容为各位回复评论指明需要的知识点,将在近期为你解决并提供还算精要的讲解:评论内容要求 Coder:+需要的技术内容.技术内容不限领域, ...