IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> nginx安装https -> 正文阅读

[网络协议]nginx安装https

安装Nginx

  • 1.下载nginx

  • 2.解压

    • > tar zxf nginx-xxxx.tar.gz
  • 3.安装编译安装所需要的依赖

    • > yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
  • 4.编译安装(默认设置)

    > cd nginx-xxx
    > ./configure
    > make && make install
    
  • 5.查看安装目录

    > whereis nginx
    	
    nginx: /usr/local/nginx
    
  • 6.启动Nginx

	> cd /usr/local/nginx/sbin
	> ./nginx
  • 7.查看Nginx是否运行

    > ps -ef | grep nginx
    
    root 4772 1 0 18:27 ? 00:00:00 nginx: master process ./nginx
    nobody 4773 4772 0 18:27 ? 00:00:00 nginx: worker process
    
    
  • 8.访问Nginx

    • http://localhost
    • nginx 端口默认监听80

安装https模块

进入到你的nginx安装目录下面,默认安装目录是在(/usr/local/nginx),如果你的nginx安装步骤和上面的文章一致的话,那你的目录和我应该是一致的
进入到目录的sbin目录下,输入

./nginx -V 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uaIDfVsl-1664358417152)(http://192.192.192.234:4999/server/index.php?s=/api/attachment/visitFile/sign/68e2c855b779c2dcbb08a79c6b217ab1)]

如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进行第五步)。

一般情况下都是不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是解压缩后的目录,我的是在(/opt/src/nginx-1.20.2),进入目录后,输入

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

接下来执行

#切记不要执行make install,否则会重新安装nginx
make

上述操作执行完成以后,你的目录下会出现objs文件夹,文件夹内存在nginx文件,如图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wNoSyMk2-1664358417155)(http://192.192.192.234:4999/server/index.php?s=/api/attachment/visitFile/sign/a675db8a3c81bfabe05b6256af5ecfe1)]

接下来使用新的nginx文件替换掉之前安装目录sbin下的nginx,注意这里的替换的时候可以先将之前的文件备份下,停掉nginx服务

#停止nginx服务
/usr/local/nginx/sbin/nginx -s stop

#替换之前的nginx
cp /opt/src/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin

成功之后,进入到nginx安装目录下,查看ssl时候成功

/usr/local/nginx/sbin/nginx -V

可以看到这里出现了configure arguments: --with-http_ssl_module 证明已经安装成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3O6v2zE8-1664358417160)(http://192.192.192.234:4999/server/index.php?s=/api/attachment/visitFile/sign/fa69557e5d4ca2f7a82937f1b6965b65)]

创建https证书

在你的ng安装目录下新建一个httpsgenerate.sh脚本复制一下内容注意修改参数

#!/bin/bash

passwd=eureka@123
name=eureka
temppath=`pwd`
jdk_bin=/usr/lib/java/jdk1.8.0_241/jre/bin
keytool -help
if [ $? -eq 0 ];then
    jdk_bin=`which keytool`
    echo -e "\033[1;32;40m INFO `basename $0` installed jdk  \033[0m" 
else     
    ${jdk_bin}/keytool -help
    if [ $? -eq 0 ];then
    	echo -e "\033[1;32;40m INFO `basename $0` installed jdk  \033[0m" 
    else 
       	echo -e "\033[1;31;40m ERROR `basename $0` failed  not install jdk & no keytool \033[0m" 
  	exit 2
    fi
fi

openssl -v
if [ $? -eq 0 ];then
    echo -e "\033[1;32;40m INFO `basename $0` installed openssl  \033[0m" 
else 
    echo -e "\033[1;31;40m ERROR `basename $0` failed  not install openssl \033[0m" 
    exit 2
fi


FILE_NAME="cert"
mkdir ${FILE_NAME}
home="${temppath}/${FILE_NAME}"
#:: 生成jks
echo -e "\033[1;32;40m gen jks&cer  \033[0m" 
mkdir ${home}/jks
cd ${home}/jks

${jdk_bin} -genkeypair -alias ${name} -keystore ${name}.jks -storetype pkcs12 -keypass ${passwd} -storepass ${passwd}  -keyalg RSA -keysize 2048 -validity 365 -dname "CN=http://192.192.192.246,OU=xx,O=dy, L=nb,ST=zj,C=china"

${jdk_bin} -exportcert -keystore ${name}.jks -file ${name}.cer -alias ${name} -storepass ${passwd}


echo -e "\033[1;32;40m 转换jks->pfx  \033[0m" 
mkdir ${home}/pfx
cd ${home}/pfx

${jdk_bin}  -importkeystore -srckeystore ${home}/jks/${name}.jks -destkeystore ${home}/pfx/${name}.pfx -srcstoretype PKCS12 -deststoretype PKCS12 -srcstorepass ${passwd} -deststorepass ${passwd}



echo -e "\033[1;32;40m  转换pfx->pem/key \033[0m" 
mkdir ${home}/pem
cd ${home}/pem

openssl pkcs12 -in ${home}/pfx/${name}.pfx -nodes -out ${home}/pem/${name}.pem -password pass:${passwd}
openssl rsa -in ${home}/pem/${name}.pem -out ${home}/pem/${name}.key

cd ${temppath}
${jdk_bin} -list -v -keystore ${home}/jks/${name}.jks -storepass ${passwd}

修改脚本

  • jdk_bin=你的java安装目录指定到bin
  • CN=等于你ng服务器地址
  • chmod 777 httpsgenerate.sh 赋权限 然后执行 ./httpsgenerate.sh,会在ng安装目录生成cert文件夹里面是你的证书
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UTVdNmd4-1664358417162)(http://192.192.192.234:4999/server/index.php?s=/api/attachment/visitFile/sign/dee1bcdfe743cc68c55b7a461d987d55)]

配置证书和https服务

server {
  #监听443端口
    listen 443 ssl;
    #你的域名
    server_name localhost;
    #ssl证书的pem文件路径
    ssl_certificate  ../cert/pem/eureka.pem;
    #ssl证书的key文件路径
    ssl_certificate_key ../cert/pem/eureka.key;

    location / {
	   alias   /usr/local/nginx/;
	   index  index.html;
	   try_files $uri $uri/ /index.html =404;
 	}
}

自己生成的证书浏览器会提示安全信息
在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:21:54  更:2022-09-30 01:23:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:25:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码