linux下apache+openssl配置记录
软件环境
Apache Httpd 2.2.29 (http://httpd.apache.org )
OpenSSL 1.0.1h (http://www.openssl.org/source )
SSL-Tools (http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz )
1. OpenSSL
#tar zxvf openssl-1.0.1h.tar.gz
#cd openssl-1.0.1h
#./config
#make
#make install
此举将安装最新的OpenSSL到/usr/local/ssl文件夹中。无需理会系统中已有版本号的OpenSSL,也不要去卸载它,否则会导致非常多的应用程序无法正常运行,比如X窗体无法进入等错误。
2. Apache Httpd
#tar zxvf httpd-2.2.29.tar.gz
#cd httpd-2.2.29
#./configure --prefix=/usr/local/apache/httpd --enable-ssl=static --with-ssl=/usr/local/ssl
#make
#make install
此步骤在/apache/httpd文件夹中安装httpd服务(通过參数--prefix指定)。同一时候使用--with-ssl指定刚才所安装OpenSSL的路径,用于将mod_ssl静态的编译到httpd服务中。
3.制作证书
我们必须手工来生成SSL用到的证书。对证书不熟悉的人,有一个工具能够使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz 。以下是怎样通过这个工具来生成证书的过程:
#cp ssl.ca-0.1.tar.gz /usr/local/apache/httpd/conf
#cd /usr/local/apache/conf
#tar zxvf ssl.ca-0.1.tar.gz
#cd ssl.ca-0.1
#./new-root-ca.sh (生成根证书)
No Root CA key round. Generating one
Generating RSA private key, 1024 bit long modulus
...........................++++++
....++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key:12345 (输入一个password)
Verifying - Enter pass phrase for ca.key: 12345(再输入一次password)
......
Self-sign the root CA... (签署根证书)
Enter pass phrase for ca.key:12345 (输入刚刚设置的password)
........
........ (以下開始签署)
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]:SD //随你喜欢
Locality Name (eg, city) [Sitiawan]:QD //随你喜欢
Organization Name (eg, company) [My Directory Sdn Bhd]:GX //随你喜欢
Organizational Unit Name (eg, section) [Certification Services Division]:GX //随你喜欢
Common Name (eg, MD Root CA) []:gaoxin.com //随你喜欢
Email Address []:12345@163.com//随你喜欢
这样就生成了ca.key和ca.crt两个文件,以下还要为我们的server生成一个证书:
# ./new-server-cert.sh server (这个证书的名字是server)
......
......
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]:SD
Locality Name (eg, city) [Sitiawan]: QD
Organization Name (eg, company) [My Directory Sdn Bhd]:GX
Organizational Unit Name (eg, section) [Secure Web Server]:GX
Common Name (eg, www.domain.com) []:gaoxiaoit.com (必须与上面的不同,否则报错)
Email Address []:@163.com
这样就生成了server.csr和server.key这两个文件。
还须要签署一下才干使用的:
# ./sign-server-cert.sh server
CA signing: server.csr -> server.crt:
Using configuration from ca.config
Enter pass phrase for ./ca.key:12345 (输入上面设置的根证书password)
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName:PRINTABLE:'CN'
stateOrProvinceName:PRINTABLE:'GanSu'
localityName:PRINTABLE:'LanZhou'
organizationName:PRINTABLE:'lzu'
organizationalUnitName:PRINTABLE:'lzu'
commonName:PRINTABLE:'localhost'
emailAddress :IA5STRING:'sunyanmeng@gmail.com'
Certificate is to be certified until Jan 19 21:59:46 2011 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
CA verifying: server.crt <-> CA cert
server.crt: OK
配置conf/extr/httpd-ssl.conf
找到#include conf/extra/httpd-ssl.confm去掉凝视
以下要依照httpd-ssl.conf里面的设置。将证书放在适当的位置。
SSLCertificateFile "/usr/local/apache/httpd/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache/httpd/conf/server.key"
# cd ..
# mkdir ssl.key
# mv ssl.ca-0.1/server.key ssl.key
# mkdir ssl.crt
# mv ssl.ca-0.1/server.crt ssl.crt
然后就能够启动啦!
# cd /usr/local/apache
注意。apache2.2之后不支持startssl。所以仅仅用start就可以
# ./bin/apachectl start
4. 測试HTTP服务
使用浏览器打开地址:https://127.0.0.1 完成!
。这样能够訪问,可是浏览器每次訪问都要确定,并且提示不安全,这要把ca证书导入浏览器的受信任列表里。
然后就不会有不论什么提示了。
接下来你可能须要双向认证:
1.new-user-cert.sh user
common name 与上面要不同我这里直接用的user
2.sign-user-cert.sh user
注冊完后事实上已经完毕,可是这里还须要生成一种浏览器须要的格式
3.p12.sh user
这里事实上是把user的crt和key合成了user.12
另外在http-ssl.conf内做例如以下配置
SSLCACertificateFile "/usr/local/apache/httpd/conf/ca.crt"
上面的配置对照服务端的认证就是我们须要将ca证书倒入浏览器信任列表。即把根证书给对方,接受信任
SSLVerifyClient require
SSLVerifyDepth 10
这里的配置对照服务端的认证就是我们在浏览器要输入https,即告诉对方我要证书。
接下来最后一步。把生成的12文件倒入浏览器就可以訪问。
(这里相应的服务端认证就是我们把server的key和crt放入apache的指定路径)
linux下apache+openssl配置记录的更多相关文章
- linux下Tomcat+OpenSSL配置单向&双向认证(自制证书)
背景 由于ios将在2017年1月1日起强制实施ATS安全策略,所有通讯必须使用https传输,本文只针对自制证书,但目前尚不确定自制证书是否能通过appstore审核. 1.必须支持传输层安全(TL ...
- Linux下 Apache Vhost 配置 防止403
首先,贴一份正确的配置(最简单的) <VirtualHost *:80> DocumentRoot /home/ubuntu/www/spider/public ServerName sp ...
- linux下jdk简单配置记录
记录哈,搭建环境的时候,copy使用方便. vim /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_79export PATH=$JAVA_HOME/ ...
- linux下apache php配置redis
1.安装redis 第一步: 下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz 上传phpredis-2.2.4.tar.gz ...
- Linux下apache+phppgadmin+postgresql安装配置
Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...
- 分享:linux下apache服务器的配置和管理
linux下apache服务器的配置和管理. 一.两个重要目录: Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式: Apac ...
- Linux下Apache虚拟主机配置
Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...
- linux 下apache安装、启动和配置
linux 下 apache安装 1:系统安装,这里就不说了,网上有很多,也很简单.顺便说下,我用的是redhat 9: 2:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.t ...
- linux 下 apache相关;启动、停止、重启命令;配置文件位置等等
linux 下 apache启动.停止.重启命 基本的操作方法: 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 apahce启动命令: 推荐/usr/l ...
随机推荐
- ResGen.exe”已退出,代码为2 问题处理
转载自 http://blog.sina.com.cn/s/blog_5f82a1060101d8tm.html 在64位的Windows 7下,用VS2010编译4.0以前的.Net项目会有问题. ...
- Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能
1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...
- String字符串的完美度
题目详情: 我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同, 而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度 ...
- [ POI 2011 ] Dynamite
\(\\\) \(Description\) 一棵\(N\)个节点的树,树上有\(M\)个节点是关键点,选出\(K\)个特殊点,使得所有关键点到特殊点的距离中最大的最小,输出最大值最小为多少. \(N ...
- 关于编辑器对<input>标签报错提示“表单输入没有相关label”的问题
相信很多朋友在制作表单的时候,我们的编辑器会有下图的相关提示吧 我们发现虽然这样并不影响我们的正常使用,但是看着这样的报错提示总是很让人心烦,那么这到底是为什么呢? 其实,这是因为编辑器建议我们在使用 ...
- Android ScrollView里嵌套RecyclerView时,在RecyclerView上滑动时出现卡顿(冲突)的现象
最近在项目中遇到一个现象,一个界面有一个RecyclerView(GridView型的),外面套了一层ScrollView,通过ScrollView上下滚动,但是在滑动的时候如果是在RecyclerV ...
- java攻城狮之路--复习JDBC(PrepareStatement)
PreparedStatement: 1.可以通过调用 Connection 对象的 preparedStatement() 方法获取 PreparedStatement 对象 2.PreparedS ...
- Centos永久路由添加教程
Centos 永久路由添加,一张图看懂全部 blog地址:http://www.cnblogs.com/caoguo
- 小白年薪26万,为什么Python岗位薪资越来越高?
人工智能和大数据概念的兴起,带动了Python的快速增长——Python语言逻辑简洁.入门简单.生态丰富,几乎成为几个新兴领域的不二选择.而除了这两个领域,Python还有更多的适用领域:爬虫.web ...
- 从 UI 交互角度说语音识别产品
语言是人类进化的主要特征,而人工智能拥有了说话的能力也是科技进步的一个特征.在很多科幻的电影里面,我们可以看到人工智能的身影.在电影 her 里面见到的人工智能,真的让人叹为观止,他可以随意的和你聊天 ...