分分钟搭建出nginx的https服务
创始人
2024-03-29 09:53:38
0

nginx添加https协议

  • 一、https是什么?
  • 二、创建步骤
    • 1.安装nginx
    • 2.创建证书
  • 三、验证
  • 四、浏览器访问
      • 在windows安装证书
  • 总结

nginx     192.168.122.50

一、https是什么?

HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。

HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。

SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。

二、创建步骤

1.安装nginx

mkdir /opt/download

上传openresty-1.21.4.1.tar.gz到/opt/download目录

yum -y install pcre pcre-devel openssl openssl-devel zlib zlib-devel  libpcre3-dev libssl-dev perl make build-essential curl libreadline-dev libncurses5-dev
tar -xf openresty-1.21.4.1.tar.gz 
cd  openresty-1.21.4.1
./configure --prefix=/opt/openresty && gmake && gmake install
ln -s /opt/openresty/nginx /opt/nginx
/bin/cp -r /opt/download/nginx.conf /opt/nginx/conf
mkdir /opt/nginx/conf/conf.d
echo "export PATH=\$PATH:/opt/nginx/sbin" >> ~/.bash_profile
source ~/.bash_profile

2.创建证书

sed -i "s/countryName		= match/countryName		= optional/g" /etc/pki/tls/openssl.cnf
sed -i "s/stateOrProvinceName	= match/stateOrProvinceName	= optional/g" /etc/pki/tls/openssl.cnf
sed -i "s/organizationName	= match/organizationName	= optional/g" /etc/pki/tls/openssl.cnf
sed -i "s/organizationalUnitName	= optional/organizationalUnitName	= optional/g" /etc/pki/tls/openssl.cnf
sed -i "s/commonName		= supplied/commonName		= supplied/g" /etc/pki/tls/openssl.cnf
sed -i "s/emailAddress		= optional/emailAddress		= optional/g" /etc/pki/tls/openssl.cnf
mkdir /opt/.ssl && cd /opt/.ssl
openssl genrsa -out cakey.pem 4096

在这里插入图片描述

openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3655

以下内容为必填项
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Common Name (eg, your name or your server’s hostname) []:192.168.122.50

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
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:BJ
Organizational Unit Name (eg, section) []:BJ
Common Name (eg, your name or your server's hostname) []:192.168.122.50
Email Address []:ABC@qq.com

在这里插入图片描述


生成私钥
openssl genrsa -out https.key 2048openssl req -new -key https.key -out https.csr -days 365

在这里插入图片描述
在CA主机上签发证书

touch /etc/pki/CA/index.txt
cp cakey.pem /etc/pki/CA/private/cakey.pem
cp cacert.pem /etc/pki/CA/cacert.pem
mkdir -p /etc/pki/CA/newcerts
touch  /etc/pki/CA/index.txt
touch /etc/pki/CA/serial
echo  '01'>/etc/pki/CA/serial

在这里插入图片描述

openssl ca -in https.csr -out https.crt -days 365

在这里插入图片描述

ll /opt/.ssl

在这里插入图片描述

cat << EOF >> /opt/nginx/conf/conf.d/ssl.conf
server{listen 443 ssl;ssl_certificate /opt/.ssl/https.crt;ssl_certificate_key  /opt/.ssl/https.key;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';ssl_prefer_server_ciphers on;
location / {root /opt/html;index index.html index.htm;}
}
EOF
nginx -t

在这里插入图片描述

三、验证

nginx
netstat -tlnup|grep 443

在这里插入图片描述

mkdir /opt/html && cd  /opt/html
echo "holle word" > /opt/html/index.html
nginx -s reload

在这里插入图片描述
打开谷歌浏览器访问

https://192.168.122.50

在这里插入图片描述
在这里插入图片描述

wget https://192.168.122.50/index.html

在这里插入图片描述

wget https://192.168.122.50/index.html --no-check-certificate

在这里插入图片描述

四、浏览器访问

打开IE浏览器访问

https://192.168.122.50

在这里插入图片描述
查看/opt/.ssl目录

ll /opt/.ssl导出cacert.pem证书
sz cacert.pem

在这里插入图片描述

在windows安装证书

将cacert.pem 改为cacert.crt

在这里插入图片描述

双击cacert.crt

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

清空IE浏览器缓存 重新打开https://192.168.122.50

在这里插入图片描述
在这里插入图片描述

总结

创建证书

openssl genrsa -out cakey.pem 4096
openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3655
openssl genrsa -out https.key 2048
openssl req -new -key https.key -out https.csr -days 365
openssl ca -in https.csr -out https.crt -days 365
[root@localhost .ssl]# ll
总用量 24
-rw-r--r--. 1 root root 2049 12月  9 12:16 cacert.pem
-rw-r--r--. 1 root root 3243 12月  9 11:45 cakey.pem
-rw-r--r--. 1 root root 5776 12月  9 13:13 https.crt
-rw-r--r--. 1 root root 1078 12月  9 13:05 https.csr
-rw-r--r--. 1 root root 1679 12月  9 13:04 https.key

https中使用ssl证书

ssl_certificate /opt/.ssl/https.crt;
ssl_certificate_key  /opt/.ssl/https.key;

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...