ssl配置
Apache SSL配置
网址: http://weizhifeng.net/apache-ssl.html
概念
开始之前介绍几个SSL相关的概念:
- CA(Certification Authority,认证中心)
- SSL (Secure Sockets Layer,安全套接层协议)
- TLS(Transport Layer Security,传输层安全)
- CSR (Certificate Signing Request,证书签名请求)
流程
需要启用SSL的服务器自己生成CSR,然后让权威的CA进行签名认证或者 自己创建一个CA证书,然后给自己的CSR签名,不过这样的证书不会被浏览器认可。 以下步骤确保已经安装了openssl,windows版本的在这。
创建一个自签名的CA证书:
openssl req -x509 -newkey rsa:1024 -keyout ca.key -out ca.crt
生成服务器CSR:
openssl req -newkey rsa:1024 -keyout server.key -out server.csr
如果不使需要CA证书签名的话,进行如下操作:
openssl req -x509 -days 1024 -key server.key -in server.csr > server.crt
如果需要用CA证书签名:
openssl x509 -req -in server.csr -out server.crt -CA ca.crt -CAkey ca.key -CAcreateserial
查看证书:
openssl x509 -noout -text -in server.crt
验证证书:
openssl verify -CAfile ca.crt server.crt
生成客户端CSR:
openssl req -newkey rsa:1024 -keyout client.key -out client.csr
用CA证书签名:
openssl x509 -req -in client.csr -out client.crt -CA caca.crt -CAkey caca.key -CAcreateserial
转换,使证书可以安装到浏览器:
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx
修改配置文件httpd-ssl.conf:
SSLCertificateFile conf/ssl.crt/server.crt #服务器证书
SSLCertificateKeyFile conf/ssl.key/server.key #服务器私钥
SSLCACertificateFile conf/ssl.crt/ca/ca.crt #CA证书
SSLVerifyClient require #强制浏览器必须安装了证书才能访问
证书链介绍
生成Root CA私钥与证书: 生成RootCA私钥 —> 使用私钥生成CSR —> 生成自签名根证书(用来给二级CA证书签名)。
生成二级CA 私钥与证书:(假如有两个二级CA, 分别负责管理服务器端和客户端证书)
2.1 生成ServerCA私钥 —> 使用私钥生成CSR —> 使用根证书签名生成二级证书(ServerCA证书用来给服务器证书签名)。
2.2 先生成ClientCA私钥 —> 使用私钥生成 CSR—> 使用根证书签名生成二级证书(ClientCA证书用来给客户端证书签名)。生成服务器端与客户端的私钥与证书:
3.1 生成ServerA私钥 —> 使用私钥生成CSR —> 使用ServerCA证书签名生成三级证书(ServerA证书)。
3.2 生成ClientA私钥 —> 使用私钥生成 CSR—> 使用ClientCA证书签名生成三级证书(ClientA证书)。
3.3 先生成ClientB私钥 —> 使用私钥生成 CSR—> 使用ClientCA证书签名生成三级证书(ClientB证书)。
...可以生成N个客户端证书
证书结构:
RootCA
|
|-------ServerCA
| |
| |--------ServerA
|
|-------ClientCA
|
|------- ClientA
|------- ClientB
|......
参考:
http://www.shenmiguo.com/archives/2009/284_linux-apache-ssl-guide.html
ssl配置的更多相关文章
- 百度CDN 网站SSL 配置
百度CDN SSL配置步骤 一般从SSL提供商购买到的证书是CRT二进制格式的. 1. 将 CRT 导入到IIS中, 然后从IIS中导出为PFX格式 2. 下载openssl,执行下面命令 提取用户证 ...
- Nginx SSL配置过程
1. 在godaddy购买了UCC SSL(最多5个域名)的SSL证书 2. 设置证书 -- 管理 -- 3. 需要制作证书申请CSR文件(在线工具制作或者openssl命令制作),保存CSR和key ...
- SSL 通信原理及Tomcat SSL 配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
- nginx反向代理cas server之1:多个cas server负载均衡配置以及ssl配置
系统环境采用centOS7 由于cas server不支持session持久化方式的共享,所以请用其他方式代替,例如:组播复制. 为什么不支持session持久化:http://blog.csdn.n ...
- centos7邮件服务器SSL配置
在上篇文章centos7搭建postfix邮件服务器的搭建中我们没有配置SSL,接下来我们在这篇文章中讲讲centos7邮件服务器SSL配置. 1. 创建SSL证书 [root@www ~]# cd ...
- Sahi (2) —— https/SSL配置(102 Tutorial)
Sahi (2) -- https/SSL配置(102 Tutorial) jvm版本: 1.8.0_65 sahi版本: Sahi Pro 6.1.0 参考来源: Sahi官网 Sahi Quick ...
- Nginx SSL配置
一.SSL 原理 ① 客户端( 浏览器 )发送一个 https 请求给服务器② 服务器要有一套证书,其实就是公钥和私钥,这套证书可以自己生成,也可以向组织申请,服务器会把公钥传输给客户端③ 客户端收到 ...
- Tomcat服务器配置https协议(Tomcat HTTPS/SSL 配置)
通常商用服务器使用https协议需要申请SSL证书,证书都是收费的,价格有贵的有便宜的.它们的区别是发行证书的机构不同,贵的证书机构更权威,证书被浏览器否决的几率更小. 非商业版本可以通过keytoo ...
- Mosquitto 单向SSL配置
Mosquitto 单向SSL配置 摘自:https://blog.csdn.net/a_bcd_123/article/details/70167833 2017年04月14日 06:56:06 s ...
随机推荐
- Linux中 干掉原来的PHP方法
干掉原来的PHP方法: 查看php版本命令:#php -v这个命令是删除不干净的#yum remove php因为使用这个命令以后再用#php -v还是会看到有版本信息的..... 必须强制删除#rp ...
- 【转】Github轻松上手1-Git的工作原理与设置
转自:http://blog.sina.com.cn/s/blog_4b55f6860100zzgp.html 作为一个程序猿,如果没有接触过stack overflow和Github,就如同在江湖中 ...
- ioctl()获取本地网卡设备信息
获得eth0接口所有信息: #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #inclu ...
- Js原型模式
function Person(){ } Person.prototype.name = "xd"; Person.prototype.age = 26; Person.proto ...
- useful-scripts
最近在github看到关于一些比较好的java相关脚本.vcs脚本.shell脚本.怕以后忘记了,在此做个备注. 原链接为:https://github.com/oldratlee/useful-sc ...
- history命令
在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令 ...
- 【windows核心编程】使用远程线程注入DLL
前言 该技术是指通过在[目标进程]中创建一个[远程线程]来达到注入的目的. 创建的[远程线程]函数为LoadLibrary, 线程函数的参数为DLL名字, 想要做的工作在DLL中编写. 示意图如下: ...
- PHP实现分页:文本分页和数字分页
来源:http://www.ido321.com/1086.html 最近,在项目中要用到分页.分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装. // 分页分装 /** * $pageT ...
- SQL Server 执行计划
当一个查询被提交时,发生了什么? 向SQL Server提交一个查询时,sever上的许多进程会在这个查询上开始工作. 这些进程的目标就是管理这个系统,使得这个查询可以选择,插入,更新,删除数据. 每 ...
- Java in ACM/ICPC
目录 Java在ACM/ICPC中的特点 在ACM/ICPC中使用Java需要注意的问题 Java与高精度计算 1.Java在ACM/ICPC中的特点 Java的语法和C++几乎相同 Java在执行计 ...