使用OpenSSL实现https_openssl发起请求-程序员宅基地

技术标签: # nginx  

一、配置OpenSSL生成证书

1、由于是实验,所以要自己安装OpenSSL(官方地址https://www.openssl.org)生成证书,其版本号分为1.1和1.0两个大分支,Centos 7开始使用1.0.2k版本,如果配置的SSL需要达到苹果要求也需要1.0.2版本。1.1依赖的libssl也是1.1版本的,而系统默认的libsso库是1.0版本(ls /usr/lib64/libssl.so.10),所以还是尽量使用1.0版本,如果要用1.1的话可以自行编译安装

wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar zxf openssl-1.1.0h.tar.gz
./config --prefix=/usr/local/openssl #虽然安装包里还有一个configure脚本,但是正确安装方式是使用config脚本
make && make install
openssl version #查看版本

2、OpenSSL安装完成后我们主要用到的就是bin下的openssl命令,该命令用于生成证书文件
在这里插入图片描述
3、执行命令生成证书的申请文件和私钥文件

openssl req -nodes -newkey rsa:1024 -out myreq.pem -keyout privatekey.pem
#req:request的简写,代表发出一个申请数字证书的请求
#-nodes:不生成pin码,简化流程
#-newkey:生成新证书并指明加密算法和长度,也可以写成2048
#-out:输出一个请求文件,非密码文件
#-keyout:生成私钥

如果执行该命令提示“error while loading shared libraries: libssl.so.1.1”这种报错,是因为1.1版本的OpenSSL依赖了libssl.so.1.1的库,而系统里默认是没有这个库文件的。好在安装好OpenSSL后再lib目录中提供了该文件,做软连接就可以解决问题

ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

4、运行命令后会要求填写相关信息,然后会在当前目录下生成申请文件和私钥文件
在这里插入图片描述
5、使用申请文件和私钥进行证书的申请,自己给自己颁发证书,命令运行后会在当前目录生成证书文件(申请文件以后没用了,可以删除掉了)

1
openssl req -in myreq.pem -x509 -key privatekey.pem -out mycert.pem -days 365
2
-in:用之前的申请文件作为输入
3
-x509:证书格式
4
-key:私钥文件
5
-out:产出的证书文件
6
-days:证书有效期

二、配置Nginx https

要让Nginx支持SSL证书的话需要在编译Nginx的时候开启–with-http_ssl_module,然后在Nginx配置文件中做以下修改:

1
#三个选项都配置在http或者server标签内
2
ssl on;
3
ssl_certificate file;
4
ssl_certificate_key file;

Nginx配置https示例:

01

HTTPS server

02
server {
03
listen 443 ssl;
04
server_name test.com;
05
ssl on;
06
ssl_certificate /usr/local/nginx/ssl/cert.pem; #指定数字证书文件
07
ssl_certificate_key /usr/local/nginx/ssl/cert.key; #指定数字证书私钥文件
08
ssl_session_cache shared:SSL:1m;
09
ssl_session_timeout 5m;
10
ssl_ciphers HIGH:!aNULL:!MD5;
11
ssl_prefer_server_ciphers on;
12
location / {
13
root html;
14
index index.html index.htm;
15
}
16
}
17
server {
18
listen 80;
19
server_name test.com;
20
rewrite (.*) https:// s e r v e r n a m e server_name servernamerequest_uri redirect;
21
}

2、启动Nginx服务,查看443端口是否监听,然后在浏览器使用https://IP进行访问测试即可。如果站点是动态页面(比如PHP),那么还需要在ssl所属的server标签内做PHP的配置才可以使用https协议

三、HTTPS服务优化方向

1、激活keepalive长连接,减少客户端请求次数

2、设置SSL session缓存,减少CPU资源消耗

配置示例:

01
server {
02
listen 443 ssl;
03
server_name test.com;
04
keepalive_timeout 100; #开启keepalive
05
ssl on;
06
ssl_certificate /usr/local/nginx/ssl/cert.pem; #指定数字证书文件
07
ssl_certificate_key /usr/local/nginx/ssl/cert.key; #指定数字证书私钥文件
08
ssl_session_cache shared:SSL:10m; #缓存session会话
09
ssl_session_timeout 10m; #session 10分钟过期
10
ssl_ciphers HIGH:!aNULL:!MD5;
11
ssl_prefer_server_ciphers on;
12
location / {
13
root html;
14
index index.html index.htm;
15
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42868638/article/details/97941069

智能推荐

python将txt文件转为字符串_Python文件如何转换为字符串-程序员宅基地

文章浏览阅读5.6k次。Python文件如何转换为字符串一、最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中:all_the_text = open('thefile.txt').read( ) # 文本文件中的所有文本all_the_data = open('abinfile','rb').read( ) # 二进制文件中的所有数据为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完..._python把txt文本变成字符串

搭建idea激活服务器_idea2023 license server-程序员宅基地

文章浏览阅读2.6k次。http://blog.lanyus.com/archives/174.html运行命令:nohup ./IntelliJIDEALicenseServer_linux_amd64 > info.log &服务器: http://vps.wiwikiky.top:1027关闭: lsof -i:1027 关闭相应的进程。..._idea2023 license server

python高斯噪声怎么去除_OpenCV 常用总结(Python)-程序员宅基地

文章浏览阅读3.5k次,点赞9次,收藏38次。最近一直在用cv2,记录一下常用的一些操作和代码吧。首先放OpenCV 的python官方文档链接:Welcome to OpenCV-Python Tutorials’s documentation!OpenCV 教程 - OpenCV 2.3.2 documentation主要用的模块大概分为以下几类:图片读写,2. 图像滤波,3.图像增强,4.阈值分割,5.形态学操作,当然还有其他。。。绪论..._如何去除高斯噪声

服务器inode使用100%解决_远程虚拟服务器提高inode-程序员宅基地

文章浏览阅读702次。背景:平时服务器就挂着docker容器,一放好几个月没碰,创建文件夹,复制文件和启动新容器时,都有提示“no space left on device”操作:使用 df -h 查看硬盘使用量,发现还有20%多,没问题然后 df -i 查看inode使用情况,发现100%摘抄自别人的博客:Inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 Block,Block是用来存储数据用的。而inode呢,就是用来存储这些_远程虚拟服务器提高inode

计算机组装模拟网址,装机模拟器PC Building Simulator-电玩之家-程序员宅基地

文章浏览阅读1.5k次。在游戏中玩家将扮演一位电脑维修店主,通过有限的资金开始运营这家店。这途中可以帮别人配置、维修电脑,但是由于顾客们各种刁钻要求,给的钱又少,所以要么就自己亏本,要么就只能“偷工减料”了,1080Ti换成960,把i7换成奔腾啥的都是玩家自己说了算。用有限的资金打造出对方想要的跑分和性能,“奸商”也是门技术活,当然这其中也要时刻为自己小店铺的声誉着想。该作售价目前9折63元,支持中文电脑装机模拟器官方..._模拟组装电脑配置网站

可以微调类ChatGPT模型啦!开源Alpaca-LoRA+RTX 4090就能搞定-程序员宅基地

文章浏览阅读2.9k次。源 | 机器之心Alpaca-LoRA 将微调类 ChatGPT 模型的算力需求降到了消费级,训练个自己的中文对话模型真就没那么难了。2023 年,聊天机器人领域似乎只剩下两个阵营:「OpenAI 的 ChatGPT」和「其他」。ChatGPT 功能强大,但 OpenAI 几乎不可能将其开源。「其他」阵营表现欠佳,但不少人都在做开源方面的努力,比如前段时间 Meta 开源的 LLaMA。LLaMA..._chatgpt微调

随便推点

android 副mic测试,如何检测Android中是否存在麦克风?-程序员宅基地

文章浏览阅读503次。我的应用程序中有一个语音识别部分来捕获用户的语音输入.这就是我的工作Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);startActivityForResult(voiceIntent,REQUEST_CODE);这在大多数设备上工作正常,但现在由于平板电脑越来越流行,其中一些没有麦克风,它会引发错..._android 查看用的哪个mic

评价最高影片JAVAlibrary_三大“百亿影帝”联袂主演,一部比肩《战狼》的王炸影片即将诞生...-程序员宅基地

文章浏览阅读8.4k次。在华语电影近百年发展史当中,《战狼2》是一部不得不提的电影,吴京是一位不得不提的艺人,因为《战狼2》开创了华语动作大片的时代,让国产电影首次走出国门,走向世界,因为居功至伟,该片的导演兼主演吴京也因此一夜成名。在《战狼》系列影片热映之前,尽管吴京已经在华语影坛摸爬滚打了数十年之久,但是他仍然一事无成,被迫在港片当中饰演一些武功高强的反派角色,在香港影坛碰壁之后,吴京痛下决心,毅然决然地返回大陆,从..._评价最高的影片library

戴尔mff主机Linux,心灵天空-Dell OptiPlex 7070MFF准系统 i7 9700翻车现场-程序员宅基地

文章浏览阅读2.1k次。怀着无比沉痛的心情,在这里记录一下新买的Dell OptiPlex 7070MFF迷你小主机的感受。原本这篇文章应该是迷你小主机的开箱测评,但是现在没啥心情写测评了,因为这次真的是一次不忍直视的翻车现场。12月份的时候,老家的小叔要我帮忙买一台电脑主机,平时也就上上网,不玩游戏。原本准备京东买配件组装,但是后来发现了戴尔的7070MFF迷你小主机看起来挺不错,马云家准系统一千来块,可以自己搭配标压..._dell 7070mff

iFluor 546 Styramide,iFluor546-PSA,用于检测细胞内蛋白质相互作用-程序员宅基地

文章浏览阅读839次,点赞19次,收藏19次。通过与其他聚合物材料的巧妙结合,我们可以制备出具有优异光学性能的薄膜。iFluor 546 Styramide,iFluor 546 PSA,Alexa Fluor 546酪胺的替代品,iFluor546-PSA,用于检测细胞内蛋白质相互作用,可以用于制备光学薄膜。文章关键词:iFluor 546 Styramide,iFluor 546 PSA,Alexa Fluor 546酪胺的替代品,iFluor546-PSA。储存条件:本品应密封避光,储存于阴凉、干燥、通风处,避免反复冻融,储液应该立即使用。

gitlab中markdown实现空格和换行_gitlab评论换行-程序员宅基地

文章浏览阅读1.2w次,点赞4次,收藏4次。最近要做一些产品的分析,分析的成果要提交到gitlab上,第一次接触markdown语言,确实不难,但是一开始的时候不断跳出来的细节上的错误难免让人心烦。这次就说个最基本的空格和换行的实现。1.当新一段开始时,发现不管空几个空格,preview中,文字就是丝毫不动,这时候你输入法,shift+space换到全角模式,然后再打几个空格就完成了~能明显感觉到变粗..._gitlab评论换行

系统mysql、sqlserver数据库兼容方案_兼容sqlserver语法国产数据库-程序员宅基地

文章浏览阅读1.4k次。应用程序兼容多种数据库类型的一种解决方案_兼容sqlserver语法国产数据库

推荐文章

热门文章

相关标签