前言

         搭建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. 【转载】C#中使用Insert方法往ArrayList集合指定索引位置插入新数据

    ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,在ArrayList集合操作过程中,可以使用ArrayList集合类的I ...

  2. 【转载】C#通过Copy方法快速复制DataTable对象

    C#中的Datatable数据变量的操作过程中,可以通过DataTable的Copy方法快速复制当前的DataTable变量到新对象中,复制数据包含当前DataTable的结构信息如列名,同时也包含当 ...

  3. JS案例 - 城市三级联动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 3.kettle-定时执行任务

    kettle定时任务可以 用两种方法. 第一种如下,但这种缺点也很明显,就是该job窗口不能关闭.(重复时间含义问题截图来自https://www.cnblogs.com/biehongli/p/10 ...

  5. sqlserver语句随笔

    替换数据:update 表名 set 列=replace(列,'要替换的数据','替换成的数据'),例子:update kers set KeyConn=replace(KeyConn,'-','/' ...

  6. HDFS 配额教程

    本文原始地址:https://sitoi.cn/posts/12544.html 名称配额(Name Quota) 名称配额是在对应的目录下所有文件和目录名称的数量上的限制. 当超过这个配额的时候,文 ...

  7. C++学习(4)——通讯录管理程序

    复习简单操作,实现一个非常非常简单的通讯录管理小程序 #include <iostream> using namespace std; #include <string> co ...

  8. iscroll.js的简单使用方法

    参考链接:https://www.cnblogs.com/Renyi-Fan/tag/js%E6%8F%92%E4%BB%B6/default.html?page=2 目录 一.总结 一句话总结:Sc ...

  9. php的快速排序

    <?php     function quicksort($str){         if(count($str)<=1) return $str;//如果个数不大于一,直接返回     ...

  10. js定时器关闭,js定时器停止,一次关闭所有正在运行的定时器,自定义函数clearIntervals()一次关闭所有正在运行的定时器

    js定时器关闭,一次关闭所有正在运行的定时器,自定义函数clearIntervals()一次关闭所有正在运行的定时器,原理:利用数组存储定时器id,然后遍历数组,关闭定时器 附上页面的截图,代码在截图 ...