我的环境是:Linux+Apache+MySQL+PHP

1.下载openssl 及相关依赖

#yum install -y openssl

2.进入目录 /etc/pki/tls/certs

#cd /etc/pki/tls/certs

3.生成私钥文件(key)

#openssl genrsa -des3 -out server.key 

  在提示后输入密码(密码不显示)

4.为避免每次服务启动都需输入证书密码,删除证书密码

#openssl rsa -in server.key -out server.key

5.用server.key生成证书

#openssl req -new -key server.key -out server.csr

参数说明:

-new:表示生成一个新证书签署请求

-key:用到的私钥文件

-out:证书的保存路径

-days:证书的有效期限,单位是day(天),默认是openssl.cnf的default_days

  此时根据提示完成以下信息:

Country Name ( letter code) [XX]:CN
State or Province Name (full name) []:Yangzhou
Locality Name (eg, city) [Default City]:Yangzhou
Organization Name (eg, company) [Default Company Ltd]:No
Organizational Unit Name (eg, section) []:New
Common Name (eg, your name or your server's hostname) []:No
Email Address []:test@test.com
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:#可直接回车
An optional company name []:#若上面回车,这边直接回车

6.生成CA的key文件ca.key和根证书ca.crt

#openssl req -new -x509 -keyout ca.key -out ca.crt

  此时提示信息与上一步类似

7.创建为根证书CA所需的目录及文件

#touch /etc/pki/CA/index.txt

8.指明证书的开始编号

#echo  > /etc/pki/CA/serial

9.用CA证书为server.csr证书签名

#openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ../openssl.cnf

  根据提示输入y,并回车

10.将ca.crt,server.crt,server.key复制到apache配置目录

例如:我的是/usr/local/apache/conf/

  我在conf中创建ssl目录用来存放

# mkdir /usr/local/apache/conf/ssl

11.配置apache

编辑配置文件

vi /usr/local/apache/conf/httpd.conf

引入ssl配置文件,增加支持ssl:

Include conf/extra/httpd-ssl.conf 去掉前面的#

打开ssl模块

LoadModule ssl_module modules/mod_ssl.so  去掉前面的#

若没有找到这句,说明需要安装依赖包:mod_ssl,安装后就会在modules里面找到:

在apache的源码目录中的modules目录下找loggers,ssl这两个文件,若没有则需根据服务器apache版本下载对应版本:http://archive.apache.org/dist/httpd/

将下载好的modules下的loggers,ssl两个文件放至你的apache的源码目录modules下

查找openssl路径

whereis openssl

进入apache的源码目录modules/ssl中

例如我的源码目录为/root/package/httpd-2.4.20

cd /root/package/httpd-2.4./modules/ssl

执行(/usr/local/apache 是Apache的安装目录)

/usr/local/apache/bin/apxs -a -i -c -L/usr/lib/openssl/engines/lib -c *.c -lcrypto -lssl -ldl;

完成后,在apache的安装目录下的modules目录会生成一个mod_ssl.so,同时httpd.conf中会增加一行LoadModule php5_module modules/libphp5.so

编辑httpd-ssl.conf文件

vi /usr/local/apache/conf/extra/httpd-ssl.conf

写入如下内容:

<VirtualHost *:>
ServerAdmin #输入的邮箱地址
php_admin_value open_basedir "/home/www/:/tmp/:/var/tmp/:/proc/"
DocumentRoot #工作目录,如/home/www
ServerName #域名:
ErrorLog "/home/wwwlogs/error_log"
CustomLog "/home/wwwlogs/access_log" combined
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl/server.crt#证书的路径
SSLCertificateKeyFile /usr/local/apache/conf/ssl/server.key#证书的路径 #
SSLCertificateChainFile /usr/local/apache/conf/ssl/ca.crt#证书的路径
Protocols h2 h2c http/1.1
<Directory "/home/www/">
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.php index.html
</Directory>
</VirtualHost>

保存并重启Apache

apachectl -k restart

若出现这种报错

解决:在httpd.conf中找到

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so   去掉前面的#

保存并重启

openssl证书及配置的更多相关文章

  1. 使用OpenSSL生成证书并配置Https

    1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念.我们以申请证书的流程说明三者的关系.客户端(相对于CA)在申请证书的时候,大体上有三个步骤: 第一步 ...

  2. linux下安装Apache(https) 服务器证书安装配置指南

    一.  安装准备 1.    安装Openssl 要使Apache支持SSL,需要首先安装Openssl支持.推荐下载安装openssl-0.9.8k.tar.gz   下载Openssl:http: ...

  3. iOS push全方位解析(二)【译文】"——生成OpenSSL证书,Provisioning Profile

    这是一篇来自raywenderlich的教程,内容翔实!结构简单透彻.讲解循序渐进.文章质量上乘!是一篇难的的博文!使用半瓶的英语水平翻译了一下: 1.[iOS push全方位解析](一) push的 ...

  4. Ubuntu下使用openssl为apache2配置ssl

    安装apache2 sudo apt-get install apache2 安装openssl 一般系统自带,可以通过openssl version查看,如果没有, sudo apt-get ins ...

  5. 【转】服务器证书安装配置指南(Weblogic)

    服务器证书安装配置指南(Weblogic) 详情请点击: http://verisign.itrus.com.cn/html/fuwuyuzhichi/fuwuqizhengshuanzhuangpe ...

  6. 1.App爬取相关库的安装(安装Charles及手机端证书安装配置)

    一.官网下载Charles安装包: https://www.charlesproxy.com/download1.下载对应版本 我这里下载的是 win 64 bit (下载完解压,双击打开charle ...

  7. 服务器证书安装配置指南(IIS7.0)

    一.  生成证书请求 1.    进入IIS控制台   进入IIS控制台,并选择服务器的服务器证书设置选项.  2.    添加证书请求   进入服务器证书配置页面,并选择“创建证书申请”  3.   ...

  8. nginx配置openssl证书

    引用出处: https://blog.csdn.net/liuchunming033/article/details/48470575 证书生成基本步骤: 生成私钥(.key)-->生成证书请求 ...

  9. Linux 部署Nginx反向代理服务 使用openssl自生成证书并配置https

    1.安装Nginx编译所依赖的包 正常centos中可以使用yum安装一下依赖包: yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel ...

随机推荐

  1. ArcGIS Earth1.9最新版安装和使用教程

    1.下载ArcGIS Earth 官网下载地址:https://www.esri.com/en-us/arcgis/products/arcgis-earth 在这个网页的最下面填上信息,就可以下载了 ...

  2. windows下安装python3 新手上路

    本文只针对刚刚拿到“驾照”的实习生 老司机回去开车.. 下载python 地址:https://www.python.org/ 选择Downloads下的windows 选择自己合适的版本  下面的是 ...

  3. 前端工程构建工具之Yeoman

    一.Yeoman 简介 通常在开发新项目时我们都需要配置工程环境,开发目录,需要下载一些库.框架文件(如 jQuery.Backbone 等),配置编译环境(Less.Sass.Coffeescrip ...

  4. Scala学习之路 (九)Scala的上界和下届

    一.泛型 1.泛型的介绍 泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性.泛型的典型应用场景是集合及集合中 ...

  5. Odoo附件传输

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307319.html  一:odoo后端上传附件 odoo中的ir.attachment模型是附件模型,可以用 ...

  6. IN2REG group 的时序分析

    针对 IN2REG 的 timing group,其 timing 模型是假设 input pin 外面有一个虚拟的reg(如图中的 reg1),这个虚拟reg的 clock 是 virtual cl ...

  7. CSS中的before和:after伪元素深入理解

    1.定义: “伪元素”,顾名思义.就是它创建了一个虚假的元素,并且将其虚假的元素插入到目标元素的内容之前或之后. 2:特点: a.它在实际文档中不改变什么,但是对用户可见,可以通过css控制,源码中看 ...

  8. Android处理ListView中的Item中的Button按钮不能点击的问题

    问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...

  9. Android分享到微信和朋友圈的工具类

    1.只要填写上正确的app_id,且引用上该工具类你就能实现分享到朋友圈和分享到微信. 2.需要到微信平台下载jar包,以及注册一个appid import android.content.Conte ...

  10. SSIS ->> Excel Destination无法接受大于255个字符长度的字符字段

    从下文的链接中找到一些背景,因为Excel会以前8行作为参考,如果某个字段前8行的最长长度没有超过255个字符,就会报错.如果知道某个字段属于描述性字段,而且字段的数据长度很可能超过255个字符长度, ...