httpd实现https
一、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相关推荐
- Apache httpd设置HTTPS双向认证
一.环境 httpd: 2.4.4 openssl:1.0.1 os:ubuntu 12.04 LTS 二.场景 我准备在httpd上配置一个HTTPS双向认证,既向客户端表明自己的身份,也只允许 ...
- httpd设置HTTPS双向认证
去年用tomcat.jboss配置过HTTPS双向认证,那时候主要用的是JDK自带的keytool工具.这次是用httpd + openssl,区别比较大 在网上搜索了很多文章,发现全面介绍的不多,或 ...
- Apache httpd 配置HTTPS SSL访问 443
2, 首先安装https模块yum install mod_ssl 3. 配置Apache Web服务器 首先,修改下面的配置文件.仅需配置红色部分 SSLCertificateFile 和 SSLC ...
- HTTPS从认识到线上实战全记录
https://www.cnblogs.com/liuxianan/p/https.html 前言 关于HTTPS,基本上你想知道的都在这里了(当然仅限入门).本文原标题<HTTPS原理与实践& ...
- https和server-status配置案例
https和server-status配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.https协议 我们知道http协议是明文的,所以,你的数据发送不管是请求报文(r ...
- CentOS 7 搭建CA认证中心实现https取证
CA认证中心简述 CA :CertificateAuthority的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户发放数字证书 功能:证书发放.证书更新.证书撤销和证书验证. 作用:身份认证, ...
- Httpd服务重定向配置
简介 重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置 我们在网站建设中,时常会遇到需要网页重定向的情况: 1.网站调整(如改变网页目录结构): 2.网页被移到一个新地 ...
- Linux服务 httpd
http:hyper text transfer protocol 超文本传输协议:80/tcp html:超文本标记语言: 格式: #<html ...
- 服务器minio配置阿里云SSL证书实现https访问
一.下载SSL证书 生成域名对应的证书,当前使用的是Apache版本 下载后,将当前两个文件重命名,私钥重命名为private.key证书重命名为public.crt. minio只能识别这两个名字 ...
最新文章
- origin+matlab基础绘图
- visual studio 64位汇编 listing列表文件
- 类的构造函数和析构函数详解
- php读取数组修改内容,php 数组如何修改值
- (转)区间合并pushup函数模板
- 人脸识别报错cascadedetect.cpp:1698: error: (-215) !empty() in function detectMultiScale
- 双稳态继电器工作原理图_固态继电器只有单一的作用吗?带你了解不一样的固态继电器...
- ogg mysql表结构不一致_OGG-01163 Bad column表结构一致、trail文件meta不一致处理
- 进入 App Store 打分
- Android笔记 几条笔记(未实验)
- MacBook Pro 高功率模式:是如何工作的?
- c语言 写高斯分布函数
- 工业4.0的网络技术(TSN)
- 逆袭大厂生存指南-1 初出茅庐
- 计算机组成原理多级先行进位,计算机组成原理—最系统的算机基础知识.ppt
- Python fitter包:拟合数据样本的分布
- 华为服务器bmc怎么传文件,华为服务器bmc配置
- 形态学-----细化
- 线阵相机的线扫描速率的计算方法
- SFTP命令常用操作
热门文章
- The top 100 papers Nature explores the most-cited research of all time.
- 状态机架构 例3包文类型识别
- JasperReport使用
- 水星450r虚拟服务器,水星(MERCURY)MW450R V4无线路由器设置方法 | 192路由网
- 原生JS实现全屏和退出全屏详解
- JetLinks物联网基础平台2.0,全新架构、全新的前端UI
- 2006年20大怪异小玩意儿
- 22年11月-外包-面试题
- 阿里云Ubuntu 16.04安装图形界面及远程控制
- Python练习题整理