软件环境



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配置记录的更多相关文章

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

    背景 由于ios将在2017年1月1日起强制实施ATS安全策略,所有通讯必须使用https传输,本文只针对自制证书,但目前尚不确定自制证书是否能通过appstore审核. 1.必须支持传输层安全(TL ...

  2. Linux下 Apache Vhost 配置 防止403

    首先,贴一份正确的配置(最简单的) <VirtualHost *:80> DocumentRoot /home/ubuntu/www/spider/public ServerName sp ...

  3. linux下jdk简单配置记录

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

  4. linux下apache php配置redis

    1.安装redis 第一步: 下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz 上传phpredis-2.2.4.tar.gz ...

  5. Linux下apache+phppgadmin+postgresql安装配置

    Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...

  6. 分享:linux下apache服务器的配置和管理

    linux下apache服务器的配置和管理. 一.两个重要目录: Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式: Apac ...

  7. Linux下Apache虚拟主机配置

    Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...

  8. linux 下apache安装、启动和配置

    linux 下 apache安装 1:系统安装,这里就不说了,网上有很多,也很简单.顺便说下,我用的是redhat 9: 2:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.t ...

  9. linux 下 apache相关;启动、停止、重启命令;配置文件位置等等

    linux 下 apache启动.停止.重启命 基本的操作方法: 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 apahce启动命令: 推荐/usr/l ...

随机推荐

  1. netty学习:UDP服务器与Spring整合(2)

    上一篇文章中,介绍了netty实现UDP服务器的栗子. 本文将会对UDP服务器与spring boot整合起来,并使用RedisTemplate的操作类访问Redis和使用Spring DATA JP ...

  2. Combox两级联动会经常出现的错误

    例如: 当我们遇到这种情况:(下拉框的隐藏值和显示值皆为实体类进行绑定值时)下拉框的隐藏值并不能成功获取到. 我们就可以使用下面 的方案来解决 ok ,成功获取到隐藏值. 还有一个,附加解决方案:

  3. iis设置404错误页,返回500状态码

    一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...

  4. echarts交叉关系图二

    echarts关系图表,此图是坐标关系图,此图用的随机坐标,此图可以拖拽,更方便整理关系, 引入echarts.js就可以实现 代码: var graph={ //这是数据项目中一般都是获取到的 no ...

  5. 搜索条件两个时间,通过php数组排序,保证select语句between时间 前小后大

    //搜索条件两个时间,通过数组排序,保证select语句between时间 前小后大 $sort_array=[$_POST['clockDate1'],$_POST['clockDate2']]; ...

  6. 【LaTeX】对xelatex的中英文设置不同的字体

    不建议用Ctex套装,不好用. 用MixTex+TexStudio! XeTeX处理中文非常方便,不需要任何设置,就能够使用系统中安装的TrueType和OpenType字体. MikTeX2.7中已 ...

  7. MYSQL数据库迁移到ORACLE数据库

    一.环境和需求1.环境 MySQL数据库服务器: OS version:Linux 5.3 for 64 bit mysql Server version: 5.0.45 Oracle数据库服务器: ...

  8. c#遍历注册表

    --来自 https://blog.csdn.net/wenchangren/article/details/751863using System; using Microsoft.Win32; us ...

  9. CDR如何使用钢笔工具进行完美抠图?【6·18特惠倒计时!】

    不要以为抠图只能在图像处理软件中实现,矢量图形绘制软件CorelDRAW一样可以,而且方法很多,文章介绍使用CDR钢笔工具抠图的方法. 提示说明: 首先说明一下,CDR中的钢笔工具和其他平面设计软件中 ...

  10. Dynamics 365 CRM Connected Field Service 自动发送command

    上期降到了怎样部署connected field service(CFS) 我们假设现在IoT 设备是温度监控器, 当温度触发我们之前预设的温度值, IoT会通过IoT Hub 发送IoT Alert ...