软件环境

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 []:12345@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的指定路径)

转载于:https://www.cnblogs.com/yangykaifa/p/7120060.html

linux下apache+openssl配置记录相关推荐

  1. Linux下apache性能配置调优

    Apache 性能配置优化 ###httpd 相关查看命令了解 查看当前安装模块mpm(多路处理器) [root@localhost ~]# httpd -l 查看httpd进程数(即各个mpm模式下 ...

  2. linux下apache+php配置

    用了一天的时间总算配置出来了,呵呵,是不是太笨了!好了 下面我就把配置步骤和需要注意的地方写下来: 首先下载apache_1.3.20.tar.gz和php-4.4.6.tar.gz(听说老版本比较稳 ...

  3. linux下jdk简单配置记录

    记录哈,搭建环境的时候,copy使用方便. vim /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_79 export PATH=$JAVA_HOME ...

  4. linux下Tomcat+OpenSSL配置单向双向认证(自制证书)

    2019独角兽企业重金招聘Python工程师标准>>> http://www.jianshu.com/p/045f95c008a0 转载于:https://my.oschina.ne ...

  5. Linux下Apache虚拟主机配置

    说明: Apache版本:httpd-2.2.31 Apache安装目录:/usr/local/apache 目的: 配置Apache虚拟主机 具体操作: 1.修改Apache主配置文件 cp /us ...

  6. linux下apache服务器的配置和管理(启动、重启、中断服务)

    2019独角兽企业重金招聘Python工程师标准>>> linux下apache服务器的配置和管理 一.两个重要目录: Apache有两个重要的目录: 1.配置目录/etc/http ...

  7. linux apache部署php,Linux下apache虚拟主机配置多版本php同时运行 | 系统运维

    学习本教程须掌握: 1.Linux下指定版本编译安装LAMP 2.Linux下Apache虚拟主机配置 3.CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5 ...

  8. Linux下安装、配置PHP环境

    Linux下安装.启动MySQL :http://blog.csdn.net/wy3552128/article/details/8143686 Linux下安装.配置.启动Apache:http:/ ...

  9. linux下php的安装路径,Linux下Apache、PHP、MySQL默认安装路径

    Apache: 如果采用RPM包安装,安装路径应在 /etc/httpd 目录下 Apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径:/usr/sbin/ ...

最新文章

  1. f2 柱状图滚动 钉钉小程序_钉钉小程序图表库AntV - F2 使用总结
  2. SAP HUM 锁住一个HU?
  3. 1.5 Kali Linux策略
  4. JQuery插件:ScrollTo平滑滚动到页面指定位置
  5. mybatis实现增删改查xml配置和后端Java编程完整教程
  6. **PCL:嵌入VTK/QT显示(Code^_^)
  7. linux(2):linux命令查看开放哪些端口
  8. 350个特性看透ES6
  9. JavaScript巧学巧用
  10. struts2的s:datetimepicker日期时间标签选择器
  11. 2018, CHI CHI2016汇总all CHI
  12. 用matlab编模糊pid程序,实例:MATLAB/Simulink实现模糊PID控制
  13. wow服务器文件夹,《60级魔兽世界WTFWDB文件夹全解析 by Qcat》
  14. python地理位置聚类_python实现地理位置的聚类
  15. centos 把文件打包为tar.gz命令
  16. SpringBoot 报错 Unrecognized field
  17. PostgreSQL设置字段默认值汇总(包含varchar,int,bool,时间,主键自增)
  18. Linux上搭建Discuz论坛
  19. Windows下基础免杀技术
  20. ceph---记录一次ceph节点重做系统,ceph恢复精简版

热门文章

  1. UITableView 长按手势
  2. SharePoint 调查列表的自定义错误页面
  3. C#的COM接口定义细则
  4. Android svg VectorDrawable 动画效果
  5. Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装
  6. 程序员必知--代码规范
  7. Node 之NPM介绍
  8. html5shiv主要解决IE6-8 无法识别HTML5的新标签,父节点不能包裹子元素,以及应用CSS样式...
  9. 微信小程序 - 展开收缩列表
  10. Python__名称空间与作用域