如何搭建HTTP/HTTPS服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何搭建HTTP/HTTPS服务相关的知识,希望对你有一定的参考价值。

1.
安装http程序,配置站点
# yum install -y httpd
# vim/etc/httpd/conf/httpd.conf
2.
为服务器申请数字证书;
(1)CA服务器端:创建私有证书颁发机构
~]# cd /etc/pki/CA
~]#(umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
~]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out/etc/pki/CA/cacert.pem -days 3655
~]#mkdir -pv /etc/pki/CA/certs,crl,newcerts
~]#touch /etc/pki/CA/serial,index.txt
~]#echo 01 > /etc/pki/CA/serial
(2)https服务器端:发起创建证书请求
~]# mkdir /etc/httpd/ssl
~]# cd /etc/httpd/ssl
~]#(umask 077; openssl genrsa -out /etc/httpd/ssl/https.key 2048)
~]#openssl req -new -key /etc/httpd/ssl/https.key -out /etc/httpd/ssl/https.csr -days 365
(3)将https服务器的请求生成文件发送给CA进行签署操作
~]# scp … … /tmp
~]# openssl ca -in/tmp/https.csr -out /etc/pki/CA/certs/https.crt -days 365
(4)将签署后的证书返回给https服务器即可使用
~]# scp … …
3.
配置httpd支持使用ssl,及使用的证书;
(1)安装并查看mod_ssl模块
[root@localhost~]# yum -y install mod_ssl
[root@localhost~]# rpm -ql mod_ssl
[root@localhost~]# httpd -M | grep ssl
4.
修改配置文件:/etc/httpd/conf.d/ssl.conf
[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf修改部分配置

DocumentRoot
定义默认虚拟主机的文档页面

ServerName
定义默认虚拟主机的服务名

SSLCertificateFile
定义证书文件路径

SSLCertificateKeyFile
定义私钥文件

注释:
1)/etc/httpd/conf.d/ssl.conf中定义启动mod_ssl.so模块,且定义监听端口
5.<VirtualHost _default_:443>定义默认虚拟主机,当根据FQDN请求有多个站点的主机,均未找到时候会返回默认主机定义的页面。
6.
测试基于https访问相应的主机;
# openssls_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfilefilename]
openssl s_client-connect 172.16.249.209:443
参考技术A HTTP服务不讲了,有服务器环境后创建WEB网站,上传数据就可以实现HTTP,国内要求备案,不备案的外网一般都打不开。
HTTPS需要淘宝Gworg获取SSL证书,安装到独立服务器,前提建设好HTTP普通网站,安装教程Gworg都会提供。
参考技术B 申请并部署SSL证书就可以实现HTTPS加密访问。

如何使用nodejs搭建一个简单的https服务器

为什么要使用HTTPS服务

  • 个人隐私以及安全的原因
  • https是未来的趋势

HTTPS的组成

  • HTTPS = HTTP + TLS/SSL

  • 简单来说在http上套上了一层加密的ssl层

HTTPS的基本原理

Nodejs搭建HTTPS服务

  • 生成HTTPS证书
  • 引入HTTPS模块
  • 指定证书位置,并创建https服务

实战案例

去网上去申请https的证书

vim https_server.js

"use strict"

// 引入模块
var https = require("https");
var fs = require("fs");

// 设置自己的证书路径
var options = {
  key : fs.readFileSync("./key.pem"),
  cert: fs.readFileSync("./cert.pem")
};

// 创建app
var app = https.createServer(options, function(req, res){
  res.writeHead(200, {"content-Type": "text/plain"});
  res.end("Hello World!\\n");
  
}).listen(443, "0.0.0.0");

以上是关于如何搭建HTTP/HTTPS服务的主要内容,如果未能解决你的问题,请参考以下文章

前端搭建本地服务器

如何申请https证书,搭建https网站

使用docker搭建STUN/TURN服务器

如何搭建phpstorm 激活服务器

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

如何在Windows平台使用VS搭建C++/Lua的开发环境