https服务搭建

背景:

http方式:客户端到服务器采用明文传输,任何人可以轻松截取或篡改机密数据

https方式:隐私数据采用密文传输,即使被截获也无法解密

环境:

1台服务器(可以和颁发机构共用一台主机)

1台证书颁发机构

1台客户机


过程:

第一步:网站服务器生成秘钥,将公钥发送给证书颁发机构CA,用来做证书

第二步:CA根据自己的秘钥算法,结合公钥生成crt证书文件,并颁发给网站服务器

第三步:客户端向服务器发送请求后,服务器将证书相关信息发送给客户端浏览器

第四步:客户端检查收到的证书是否是信任机构的证书,是,则点信任表示授权该证书

一、颁发机构主机,找到openssl工具,先生成根证书文件秘钥cakey.pem

说明:umask用来限制一般用户访问;调用到openssl工具;rsa算法;并生成和输出cakey .pem文件;秘钥长度为2048

命令: ( umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

二、修改openssl配置文件/etc/pki/tls/openssl.cnf,设置生成自签署证书时的关键默认值

说明:国家、省份、城市、组织、组织部门

三、创建根证书文件cacert.pem

说明:采用req格式;新建申请文件;国际标准509;由cakey.pem秘钥生成;输出名cacert.pem;有效期为365天;配置文件默认,填写域名和管理员邮箱

命令 openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out  /etc/pki/CA/cacert.pem -days 365

四、网站服务器主机

说明:服务器需启用的一些模块(如已安装apache,需yum 安装mod_ssl和openssl,采用动态模式加载模块)

--with-included-apr
--enable-so
--enable-deflate=shared
--enable-expires=share
--enable-rewrite=shared
--enable-ssl

1、生成一个秘钥httpd.key

命令 (umask 077;/usr/bin/openssl genrsa 1024 >httpd.key)

2. 用httpd.key秘钥,新建一个证书申请文件httpd.crq

说明:填写颁发机构信息;域名只能选择一个有效(如果有多个);无需额外加密提高安全性,直接回车即可

命令 /usr/bin/openssl req -new -key httpd.key -out httpd.crq

3. 将证书申请文件交给证书颁发机构

五、颁发机构主机创建: index.txt,用于存放颁发了证书存放的记录,serial用于说明证书序号

说明:需在openssl配置文件中指明/etc/pki/tls/openssl.cnf

命令touch index.txt

命令echo "00">>serial

六、生成证书文件http.crt

说明:用ca命令;指定申请文件;输出;有效期;检查网站服务器申请信息是否和颁发机构一致,如审核没问题,就回复y签署;成功生成证书之后,serial和index.txt会自动记录值

命令  /usr/bin/openssl ca -in /tmp/httpd.crq -out /tmp/http.crt -days 365

七、将生成的证书http.crt传给网站服务器

八、网站服务器修改配置文件

1. 如apache,主配置文件/usr/local/apache2/conf/httpd.conf

说明:启用ssl加密,加载ssl模块

2. 继续修改配置文件/usr/local/apache2/conf/extra/httpd-ssl.conf

说明:端口号默认443;设置根目录,域名;打开引擎;指定证书文件和秘钥文件目录

九、客户机测试

时间: 2024-10-19 14:28:15

https服务搭建的相关文章

如何实现基于lamp搭建https服务

如何实现基于lamp搭建https服务 lamp:服务架构 httpd:接收用户的web请求:静态资源则直接响应:动态资源为php脚本,对此类资源的请求将交由php来运行: php:运行php程序: MariaDB:数据管理系统: (一):  安装其相关服务 CentOS 6: httpd, php, mysql-server, php-mysql # service httpd  start # service  mysqld  start CentOS 7: httpd, php, php-

搭建HTTP/HTTPS服务

1.建立httpd服务器(基于编译的方式进行),要求: 提供两个基于名称的虚拟主机: (a)www1.itab.com,页面文件目录为/web/vhosts/www1:错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access: (b)www2.itab.com,页面文件目录为/web/vhosts/www2:错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access: (

基于openssl搭建https服务

多种应用层协议,例如http,ftp,smtp等都是明文协议,而这些服务在互联网通信中是不可或缺的,而有时安全显得特别重要,例如网购的时候,所以出现了ssl/tls的技术,那么现在就来实现以下基于ssl搭建https服务 查看当前httpd服务器是否安装了mod_ssl模块 httpd -M 一般在使用rpm包安装的时候,不会安装该模块,在编译安装httpd的时候,在./configure --enable-ssl编译该模块 如果单独使用rpm安装mod_ssl,可以看到安装这个模块生成的文件

如何搭建一个 HTTPS 服务端

关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端. 服务端的 HTTPS HTTPS 已经几乎成为了当前互联网推荐的通信方式,它能最大化保证信息传输的安全,从去年苹果的强制 HTTPS ,到如今各大网站都支持了 HTTPS.它会越来越普及. 之前写过几篇关于 HTTPS 原理的文章,有用户留言希望了解一些如何在服务端搭建 HTTPS 服务的内容,这次就和大家聊聊这个话题. SSL 证书 搭建一个 HTTPS 站点,第一步要做的就是申请 SSL

使用openssl和nodejs搭建本地https服务

本地开发有时会遇到必须使用https服务的情况,这里介绍一下使用openssl自签名证书,并使用nodejs开启https服务. 1. 安装openssl 在http://slproweb.com/products/Win32OpenSSL.html可以找到openssl安装包,可以根据介绍下载对应版本安装,安装完成后将安装位置bin目录的文件路径添加到系统环境变量,此时就可以在全局使用openssl指令,打开命令行输入`openssl -version`查看openssl是否正确安装.安装完成

使用Let's Encrypt搭建永久免费的HTTPS服务

1.概述1.1 HTTPS概述HTTPS即HTTP + TLS,TLS 是传输层加密协议,它的前身是 SSL 协议.我们知道HTTP协议是基于TCP的.简而言之HTTPS就是在TCP的基础上套一层TLS协议,对HTTP原来在TCP明文传输的内容进行加密,达到安全的目的. HTTP 和 TLS 在协议层的位置以及 TLS 协议的组成如下图: 目前很多网站都启用了HTTPS,这肯定是未来的趋势.而且一些场景必须使用HTTPS协议的,比如微信公众号的某些功能.小程序接入H5等等.详情参考:https:

为苹果ATS和微信小程序搭建 Nginx + HTTPS 服务

昨天测试开发微信小程序,才发现微信也要求用HTTPS加密数据,想来是由于之前苹果的ATS审核政策的缘故吧,微信想在苹果上开放小程序必然也只能要求开发者必须使用HTTPS了,于是在服务器上测试安装Nginx+HTTPS服务. 安装 HTTPS 最麻烦的问题应该就是获取证书了,证书感觉种类也挺复杂的,有好几种,单域.泛域.多域...还有个种标准乱七八糟的感觉,而且收费很高,还是每年买的. 现在各个云服务商也都有提供各种基础功能的免费证书,但似乎很多只对单域免费,这里的单域是指每个二级域名都算是一个域

linux下httpd服务名词解释和http及https服务器搭建

1.HTTP: HyperText Transfer Protocol: 超文本传输协议 2.URI: Uniform Resource Indentifier,统一资源标示 全局范围内,路径格式上的统一 3.URL:Uniform Resource Locator:统一资源定位 4.web资源:多个资源很可能被整合为一个html文档 5.MIME: Multipurpose Internet Mail Extension, 多用途互联网邮件扩展 将非文本数据在传输前重新编码(Base64)为文

Nginx + openssl 搭建https服务

近期忙着和第三方短信公司对接短信上行接口.给予https和digest认证方式进行数据的传输.digest认证由前端phper进行实现,我需要完成nginx+ssl实现https服务.ssl使用openssl自己进行制作. SSL原理: 给予SSL原理知识,在这里不再过多阐述.想详细了解,可以猛戳此链接进行查看:http://www.fenesky.com/blog/2014/07/19/how-https-works.html 1.首先要生成服务器的私钥:    运行时会提示输入密码,此密码用