前言

         搭建https有两种方式,分为单向认证和双向认证。单向认证就是传输的数据加密过了,但是不会校验客户端的来源,也就只有客户端验证服务端证书。
 
单向认证

1、安装mod_ssl

yum -y install mod_ssl

2、HTTP 服务器上配置mod_ssl

2.1、进入http服务器配置文件所在目录

cd /etc/pki/tls/certs/

2.2、建立服务器密钥

[root@fee6202a726e certs]# make server.key           #建立服务器密钥
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
...............................+++
........+++
e is 65537 (0x10001) 
Enter pass phrase:                        #设置一个口令
Verifying - Enter pass phrase:             #确定口令
[root@fee6202a726e certs]#

[root@fee6202a726e certs]# openssl rsa -in server.key -out server.key    #从密钥中删除密码(以避免系统启动后被询问口令)

2.3、建立服务器公钥

[root@fee6202a726e certs]# make server.csr              #生成服务器公钥
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN #填入国家代码 例如CN
State or Province Name (full name) []:Shanghai #省 例如 Shanghai
Locality Name (eg, city) [Default City]:Shanghai #市 例如 Shanghai
Organization Name (eg, company) [Default Company Ltd]:NOC #组织名 例如NO (任意)
Organizational Unit Name (eg, section) []:Newegg #组织单位名 例如 New (任意)
Common Name (eg, your name or your server's hostname) []:NOC #通用名 例如 NO (任意)
Email Address []:noc@newegg.com # 电子邮箱 Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: # 不填,直接回车
An optional company name []: # 不填,直接回车
[root@fee6202a726e certs]#

2.3、建立服务器证书

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

Signature ok
subject=/C=CN/ST=Shanghai/L=Shanghai/O=NOC/OU=Newegg/CN=NOC/emailAddress=noc@newegg.com
Getting Private key chmod 400 server.* # 修改权限为400

2.4、设置SSL

vim /etc/httpd/conf.d/ssl.conf
# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html" # 去掉此参数的注释‘#’ systemctl restart httpd # 重启httpd 服务,

验证:  通过https 打开网页查看是否成功

代理(强制http请求跳转到https)

<Directory "/var/www/html">     # 此类容最后增加下面三行
RewriteEngine on # 开启重定向擎设置为on,就是让url重写生效
RewriteCond %{SERVER_PORT} !^443$ # 设置规则,端口重定向成 443 端口
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R] # ^(.*)?$是一个正则表达式,意思是对所有请求都重定向到https://.... 其它代码解释

RewriteCond %{REQUEST_FILENAME} !-f          #如果文件存在,就直接访问文件,不进行下面的RewriteRule.

RewriteCond %{REQUEST_FILENAME} !-d          # 如果目录存在就直接访问目录不进行RewriteRule

RewriteCond $1 !^(index\.php|images|robots\.txt)    #配置url重写规则,!^(index\.php|images|robots\.txt) 这个正则表达式指明了哪些文件不需要重                                                         写,而是直接访问;

 

zabbix 修改https 并实现http跳转到https

vim /etc/httpd/conf/httpd.conf    # 添加如下内容

<Directory "/usr/share/">   # 这里的路径是 zabbix 的路径  /usr/share/zabbix

Options Indexes FollowSymLinks
Require all granted
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R] </Directory>

Linux apache自建证书搭建https的更多相关文章

  1. Lamp(linux+apache+mysql+php)环境搭建

    Lamp(linux+apache+mysql+php)环境搭建 .安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sud ...

  2. 信安实践——自建CA证书搭建https服务器

    1.理论知识 https简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HT ...

  3. 自建CA证书搭建https服务器

    由于CA收费,所以可以自建CA,通过将CA导入浏览器实现https的效果,曾经12306购票就需要自行导入网站证书. 关于https 2015年阿里巴巴将旗下淘宝.天猫(包括移动客户端)全站启用HTT ...

  4. 自建证书配置HTTPS服务器

    1.写这篇博客的初衷是因为最近iOS9出来了,苹果官方默认要求使用HTTPS,所以自己想整一个HTTPS服务器,也想好好了解一下HTTPS通信,也知道了HTTPS其实就是在HTTP的基础上加上了SSL ...

  5. apache配置CA证书通过https通信

    Apache Httpd 2.2 实现https加密通讯 实际生产中CA证书一般是向一些专业认证的国际机构来进行申请的.我们会模拟使用OpenSSL生成的证书,来实现Apache的安全加密通讯,这与实 ...

  6. 阿里云服务器Centos上Apache安装SSL证书配置Https

    首先我们先去阿里云申请一个免费的SSL证书(https://common-buy.aliyun.com/?spm=5176.7968328.1266638..5e971232BzMSp5&co ...

  7. iOS 的三种自建证书方法https请求相关配置

    如果你的app服务端安装的是SLL颁发的CA,可以使用系统方法直接实现信任SSL证书,关于Apple对SSL证书的要求请参考:苹果官方文档CertKeyTrustProgGuide 这种方式不需要在B ...

  8. [转] Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程

    一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合 ...

  9. Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程

    一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合 ...

随机推荐

  1. pacman 命令详解

    Pacman 是一个命令行工具,这意味着当你执行下面的命令时,必须在终端或控制台中进行. 1.更新系统 在 Arch Linux 中,使用一条命令即可对整个系统进行更新:pacman -Syu 如果你 ...

  2. SQL Server 2017 下载及安装详细教程

    SQL Servicer 2017 下载及安装 1)下载安装SQLServer 2)安装SQLServer management Studio. 一.     下载及安装SQLServer 下载链接( ...

  3. BZOJ3209: 花神的数论题(数位DP)

    题目: 3209: 花神的数论题 解析: 二进制的数位DP 因为\([1,n]\)中每一个数对应的二进制数是唯一的,我们枚举\(1\)的个数\(k\),计算有多少个数的二进制中有\(k\)个\(1\) ...

  4. 在ZYNQ上裸机跑ARM程序的演示

    今天给大家演示如何在ZYNQ上,裸机跑ARM程序,本测试用的是米尔Z-turn Board单板,测试代码用的XILINX官方的C语言测试程序,用于测试挂接在ARM总线上的设备是否正常,并在串口终端打印 ...

  5. Java 之 ArrayList 集合

    一.ArrayList 概述 java.util.ArrayList  是 大小可变的数组 的实现,存储在内的数据称为元素.该类是一个 集合类(容器),可以让我们更便捷的存储和操作对象数据. 该类可以 ...

  6. 石油petrolaeum单词petrolaeum原油

    petroleum 1.a flammable liquid ranging in color from clear to very dark brown and black, consisting ...

  7. Cheat Engine 作弊表框架代码

    打开游戏 打开自动汇编 扫描的所有过程,这里就省略了 引用作弊表框架代码 查找使阳光减少的地址 拷贝这个地址 添加到自动汇编脚本里,并添加汇编指令 分配到当前作弊表 生成自动汇编脚本 进行激活测试 可 ...

  8. Nginx核心模块内置变量

    本文根据Nginx官网整理了Nginx的ngx_http_core_module模块的内置变量,可与Apache做对比参考.随后做了一次测试观察各变量的值,并附上测试结果. 1.变量列表 $arg_n ...

  9. ansible-playbook安装zabbix_server,agent监控

    主要完成通过playbook自动生成zabbix_server,agent,这里没有完全实现自动化,这里机器的获取还是需要人为手工填写,如果感兴趣想通过自动获取需要部署的机器可以通过namp扫描工具a ...

  10. centos7搭建lnmp

    一.准备 1. 修改网络yum源 先将系统自带的yum配置文件重命名或删除,然后下载下面两个文件 阿里云:http://mirrors.aliyun.com/repo/Centos-7.repo ep ...