一、Apache实现https

1.创建证书

(1)生成私钥

mkdir  /data

cd  /data

[root@sutang data]# openssl genrsa -des3 -out server.key 1024

Generating RSA private key, 1024 bit long modulus

......++++++

..................++++++

e is 65537 (0x10001)

Enter pass phrase for server.key:

Verifying - Enter pass phrase for server.key:

[root@sutang data]#

#des3是算法, -out [filename] 1024是长度,默认  会让你输入密码,不小于4个字符

(2)生成证书请求文件(csr)

openssl req -new -key server.key -out server.csr 执行这条命令,会出现输入国家、省等等,下面文字就是说名让你输入什么

C:Country ,单位所在国家,为两位数的国家缩写,如: CN 就是中国

ST 字段: State/Province ,单位所在州或省

L 字段: Locality ,单位所在城市 / 或县区

O 字段: Organization ,此网站的单位名称;

OU 字段: Organization Unit,下属部门名称;也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等;

CN 字段: Common Name ,网站的域名;

生成 csr 文件后,提供给 CA 机构,签署成功后,就会得到一個 example.crt 证书文件,SSL 证书文件获得后,就可以在 Nginx 配置文件里配置 HTTPS 了。

-new 创建一个新的证书请求文件 -key filename 指定私钥的输入文件,创建证书请求时需要 -out filename.csr 输出指定的文件名

您只要把server.csr这个档案给第三方CA(Certificate Authority)机构签署生成证书就可以了。

(3)取消私钥文件中的密码

采用DES3加密新产生的私钥server.key文件,每次要使用这个私钥时都要用输入密码。如果您的电子证书是用在apache等服务器中,您每次启动服务器时都要输入密码一次,我们可以在生成证书请求文件后,删除私钥的密码。

采用128位rsa算法生成密钥server.key文件,这种方法产生的证书在apache等服务器中启动服务器时不会要求输入密码,同时也不会把私钥加密。

cp server.key server.key.org

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

(4)签署证书请求文件并生成证书(crt)

如果要第三方签署的话,你只需要把server.csr这个档案给第三方CA(Certificate Authority)机构签署生成证书就可以了。

此处我们采取自己签署的方式。

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Apache要使用的文件只有两个:被取消了密码的server.key、证书文件server.crt

2.添加ssl模块

Apache的源码包中自带了ssl模块,默认是不安装的。

有两种方式添加模块。

一是在备份了原有配置文件的情况下,重新编译安装软件,然后将原有配置文件替换掉新的配置文件,然后修改配置文件以支持原有模块。此种弊端在于你可能不知道哪些配置文件是修改过的。你可以直接将安装目录下的conf文件备份了。

如果make install不替换配置文件的话,你可以采用此种方式。至于make  install是否再二次编译时是否替换配置文件,我也不敢确认。

二是在源码包中重新编译,但不执行make install,然后替换掉安装目录下相关的二进制文件。此种弊端在于你很有可能不知道要替换的二进制文件在哪里,有哪些。

三是动态编译添加模块。

建议使用第三种。因为你可能不知道修改了哪些配置文件。

--------------第一种-------------------------

(1)备份原有的配置文件

[root@sutang httpd-2.2.15]# cd /usr/local/httpd/conf/

[root@sutang conf]# mkdir /httpd_bak

[root@sutang conf]# cp httpd.conf /httpd_bak/httpd.conf.bak

(2)查看原有的编译参数

如果上次安装后没有make clean的话,在安装目录下的build/config.nice中可以找到

[root@sutang bin]# cat /usr/local/httpd/build/config.nice

#! /bin/sh

#

# Created by configure

"./configure" \

"--prefix=/usr/local/httpd" \

"--enable-so" \

"--enable-rewriter" \

"--enable-charset-lite" \

"--enable-cgi" \

"$@"

[root@sutang bin]#

#/usr/local/httpd是httpd的安装目录

(3)在源码包重新编译

先安装添加ssl模块所需的依赖:

yum install openssl-devel

编译

./configure  --prefix=/usr/local/httpd --enable-so --enable-rewriter --enable-charset-lite --enable-cgi  --enable-ssl

安装

make  &&  make  install

(4)还原配置文件

通过覆盖的方式还原配置文件。

[root@sutang conf]# cp /httpd_bak/httpd.conf.bak /usr/local/httpd/conf/httpd.conf

3.修改配置文件启用ssl模块

(1)修改httpd.conf

把此处注释去掉,代表启用ssl模块

(2)修改ssl.conf文件

vim /usr/local/httpd/conf/extra/httpd-ssl.conf

下面的配置为访问https页面的网页目录配置。

当我们访问https://192.168.8.116/时,会去读取httpd-ssl.conf文件中的配置,根据该文件中的配置网页根目录下去找网页。

图中那两处为证书文件和密钥的配置。

(3)将证书文件复制到指定位置

[root@sutang conf]# cd /data

[root@sutang data]# cp server.crt server.key /usr/local/httpd/conf/

4.测试

(1)编写一个配置文件

echo  ssl>/usr/local/httpd/htdocs/sss.html

(2)重启服务并测试

service httpd restart

-------------------第二种----------------------

动态加载模块

(1)安装ssl模块需要的依赖

yum -y install openssl-devel

(2)加载模块

进入Apache的源码解压目录下面的modules/ssl下执行命令:

apxs -i -c -a -D HAVE_OPENSSL=1 -I /usr/include/openssl -lcrypto -lssl -ldl *.c

apxs命令参数说明:

-i  此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。

-a  此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。

-A  与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。

-c  此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so

(3)查看模块

查看模块确认模块是否加载成功。

[root@sutang ssl]# cd /usr/local/httpd/modules/

[root@sutang modules]# ls

httpd.exp  mod_ssl.so

[root@sutang modules]#

3.修改配置文件

(1)修改httpd.conf启用模块

vim /usr/local/httpd/conf/httpd.conf

确认是否启用ssl模块

取消注释调用ssl的配置文件。

(2)修改ssl.conf文件

vim /usr/local/httpd/conf/extra/httpd-ssl.conf

下面的配置为访问https页面的网页目录配置。

当我们访问https://192.168.8.116/时,会去读取httpd-ssl.conf文件中的配置,根据该文件中的配置网页根目录下去找网页。

图中那两处为证书文件和密钥的配置。

(3)将证书文件复制到指定位置

[root@sutang conf]# cd /data

[root@sutang data]# cp server.crt server.key /usr/local/httpd/conf/

4.测试

(1)编写一个配置文件

echo  sslabc >/usr/local/httpd/htdocs/abc.html

(2)重启服务并测试

service httpd restart

httpd实现https相关推荐

  1. Apache httpd设置HTTPS双向认证

    一.环境 httpd: 2.4.4  openssl:1.0.1  os:ubuntu 12.04 LTS 二.场景 我准备在httpd上配置一个HTTPS双向认证,既向客户端表明自己的身份,也只允许 ...

  2. httpd设置HTTPS双向认证

    去年用tomcat.jboss配置过HTTPS双向认证,那时候主要用的是JDK自带的keytool工具.这次是用httpd + openssl,区别比较大 在网上搜索了很多文章,发现全面介绍的不多,或 ...

  3. Apache httpd 配置HTTPS SSL访问 443

    2, 首先安装https模块yum install mod_ssl 3. 配置Apache Web服务器 首先,修改下面的配置文件.仅需配置红色部分 SSLCertificateFile 和 SSLC ...

  4. HTTPS从认识到线上实战全记录

    https://www.cnblogs.com/liuxianan/p/https.html 前言 关于HTTPS,基本上你想知道的都在这里了(当然仅限入门).本文原标题<HTTPS原理与实践& ...

  5. https和server-status配置案例

    https和server-status配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.https协议 我们知道http协议是明文的,所以,你的数据发送不管是请求报文(r ...

  6. CentOS 7 搭建CA认证中心实现https取证

    CA认证中心简述 CA :CertificateAuthority的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户发放数字证书 功能:证书发放.证书更新.证书撤销和证书验证. 作用:身份认证, ...

  7. Httpd服务重定向配置

    简介 重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置 我们在网站建设中,时常会遇到需要网页重定向的情况: 1.网站调整(如改变网页目录结构): 2.网页被移到一个新地 ...

  8. Linux服务 httpd

    http:hyper text transfer protocol 超文本传输协议:80/tcp     html:超文本标记语言:         格式:             #<html ...

  9. 服务器minio配置阿里云SSL证书实现https访问

    一.下载SSL证书 生成域名对应的证书,当前使用的是Apache版本 下载后,将当前两个文件重命名,私钥重命名为private.key证书重命名为public.crt. minio只能识别这两个名字 ...

最新文章

  1. origin+matlab基础绘图
  2. visual studio 64位汇编 listing列表文件
  3. 类的构造函数和析构函数详解
  4. php读取数组修改内容,php 数组如何修改值
  5. (转)区间合并pushup函数模板
  6. 人脸识别报错cascadedetect.cpp:1698: error: (-215) !empty() in function detectMultiScale
  7. 双稳态继电器工作原理图_固态继电器只有单一的作用吗?带你了解不一样的固态继电器...
  8. ogg mysql表结构不一致_OGG-01163 Bad column表结构一致、trail文件meta不一致处理
  9. 进入 App Store 打分
  10. Android笔记 几条笔记(未实验)
  11. MacBook Pro 高功率模式:是如何工作的?
  12. c语言 写高斯分布函数
  13. 工业4.0的网络技术(TSN)
  14. 逆袭大厂生存指南-1 初出茅庐
  15. 计算机组成原理多级先行进位,计算机组成原理—最系统的算机基础知识.ppt
  16. Python fitter包:拟合数据样本的分布
  17. 华为服务器bmc怎么传文件,华为服务器bmc配置
  18. 形态学-----细化
  19. 线阵相机的线扫描速率的计算方法
  20. SFTP命令常用操作

热门文章

  1. The top 100 papers Nature explores the most-cited research of all time.
  2. 状态机架构 例3包文类型识别
  3. JasperReport使用
  4. 水星450r虚拟服务器,水星(MERCURY)MW450R V4无线路由器设置方法 | 192路由网
  5. 原生JS实现全屏和退出全屏详解
  6. JetLinks物联网基础平台2.0,全新架构、全新的前端UI
  7. 2006年20大怪异小玩意儿
  8. 22年11月-外包-面试题
  9. 阿里云Ubuntu 16.04安装图形界面及远程控制
  10. Python练习题整理