CentOS 7.4 Tengine安装配置详解(五)

前端之家收集整理的这篇文章主要介绍了CentOS 7.4 Tengine安装配置详解(五)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

十四、配置Tengine支持HTTPS

1、演示环境:

IP

操作系统

角色

192.168.1.222

CentOS 7.4

Tengine服务器

192.168.1.145

CentOS 6.9

自建CA服务器

备注:TengineCA可以部署于同一台服务器


2、修改配置文件Nginx.conf,创建基于主机名的虚拟主机:

server {

listen 80;

server_name web.vhosts.com;

location / {

root /vhosts/web;

index index.html index.html;

}

}

3、创建虚拟主机页面存放目录及测试页:

# mkdir -pv /vhosts/web

# echo "Index html" > /vhosts/web/index.html

# echo "Test html" > /vhosts/web/test.html

# Nginx -t

# Nginx -s reload

4、管理员权限运行notepad修改本地Windows 10C:\Windows\System32\drivers\etc\hosts文件,末尾新增代码192.168.1.222 web.vhosts.com,保存后访问测试页


5、 192.168.1.145的自建CA服务器创建私有CA

(1)安装相关软件包:# yum -y install openssl openssh-clients # which openssl --> /usr/bin/openssl

备注:OpenSSL配置文件/etc/pki/tls/openssl.cnf,此处无需修改,使用默认配置即可

(2)创建保存证书信息的数据库文件# touch /etc/pki/CA/index.txt

(3)创建保存证书序列号的文件# echo 01 > /etc/pki/CA/serial

(4)生成私钥cakey.pem# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

备注:genrsa子命令常用选项

Ø genrsa:用于生成RSA密钥对的OpenSSL子命令

Ø -out cakey.pem:私钥保存位置

Ø 2048:密钥长度,也可以使用10244096

更多genrsa子命令选项可查看:# man genrsa

(5)生成CA证书cacert.pem

# cd /etc/pki/CA # openssl req -new -x509 -key private/cakey.pem -days 7300 -out cacert.pem

其中ca.vhosts.com为证书颁发者

备注:req子命令常用选项

Ø req:用于证书签署请求和证书生成-new生成新证书签署请求

Ø -x509:专用于CA生成自签证书

Ø -key cakey.pem生成CA证书请求时用到的私钥

Ø -days 7300:证书的有效期限为20

Ø -out cacert.pem:证书的保存路径

更多req子命令选项可查看:# man req

6、 192.168.1.222Tengine服务器生成证书签署请求文件并发送至自建CA服务器:

# yum -y install openssh-clients # which openssl --> /usr/bin/openssl

(2)创建用于存放密钥的目录:# mkdir -pv /usr/local/tengine/ssl # cd /usr/local/tengine/ssl

(3)生成私钥web-vhosts-com.key# (umask 077; openssl genrsa -out web-vhosts-com.key 2048)

(4)生成证书签署请求文件web-vhosts-com.csr

# openssl req -new -key web-vhosts-com.key -days 7300 -out web-vhosts-com.csr

其中web.vhosts.com为证书颁发的对象

(5)将证书签署请求文件web-vhosts-com.csr发送至CA服务器:

# scp web-vhosts-com.csr root@192.168.1.145:/etc/pki/CA/certs/

7、自建CA服务器签署证书并发还给Tengine服务器:

(1)签署证书:

# cd /etc/pki/CA/certs # openssl ca -in web-vhosts-com.csr -days 7300 -out web-vhosts-com.crt

备注:ca子命令常用选项

Ø ca:用于签署证书请求的-in web-vhosts-com.csr:证书签署请求文件路径

Ø -out web-vhosts-com.crt:证书的保存路径

更多ca子命令选项可查看:# man ca

(2)将证书web-vhosts-com.crt发还给Tengine服务器:

# scp web-vhosts-com.crt root@192.168.1.222:/usr/local/tengine/ssl

(3)Tengine服务器查看证书信息:

# openssl x509 -in web-vhosts-com.crt -noout -text //显示详细信息

# openssl x509 -in web-vhosts-com.crt -noout -subject

# openssl x509 -in web-vhosts-com.crt -noout -serial

8、配置Tengine支持HTTPS

(1)修改配置文件Nginx.conf

# HTTP默认监听端口为80,而HTTPS默认监听端口为443

listen 443 ssl;

server_name web.vhosts.com;

# 指定证书文件路径

ssl_certificate /usr/local/tengine/ssl/web-vhosts-com.crt;

# 指定证书文件对应的私钥文件路径

ssl_certificate_key /usr/local/tengine/ssl/web-vhosts-com.key;

# 指定SSL/TLS会话缓存的类型和大小,shared:SSL:10m表示所有Tengine工作进程共享SSL会话缓存

ssl_session_cache shared:SSL:10m;

# SSL会话超时时长,默认为5分钟

ssl_session_timeout 30m;

# 指定加密协议

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

# 指定使用的套件加密算法,不同的浏览器所支持的套件可能会有所不同

ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;

# 设置协商加密算法时,优先使用服务器端的加密套件,而不是客户端浏览器的加密套件

ssl_prefer_server_ciphers on;

}

# Nginx -t # Nginx -s reload # ss -tunlp | grep :443

(2)浏览器中输入https://web.vhosts.com测试:

(3)将所有HTTP请求(80端口)重定向HTTPS443端口),并访问测试页:

# 以下方法三选一

rewrite ^/(.*)$ https://$server_name/$1 permanent;

#rewrite ^ https://$server_name$request_uri? permanent;

#return 301 https://$server_name$request_uri;

# Nginx -t # Nginx -s reload

浏览器访问http://web.vhosts.com,回车后自动跳转https://web.vhosts.com

浏览器访问http://web.vhosts.com/test.html,回车后自动跳转https://web.vhosts.com/test.html

查看web-vhosts-com.crt证书信息:

备注:生产环境中使用的证书建议从正规的证书颁发机构处申请

猜你在找的CentOS相关文章