当前位置: 首页 > news >正文

如何通过openssl生成公钥和私钥?

1、生成RSA秘钥的方法

生成RSA秘钥的方法:

openssl genrsa -des3 -out privkey.pem 2048

注:建议用2048位秘钥,少于此可能会不安全或很快将不安全。

这个命令会生成一个2048位的秘钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:openssl genrsa -out privkey.pem 2048

2、生成一个证书请求

openssl req -new -key privkey.pem -out cert.csr

这个命令将会生成一个证书请求,当然,用到了前面生成秘钥privkey.pem文件,这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 3650

这个命令将用上面生成的秘钥privkey.pem生成一个数字证书cacert.pem

以上步骤或直接使用一个命令即可:openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout privkey.pem -out cacert.pem -days 3650

3、ssl证书在nginx的配置:

server {listen       443 ssl;server_name  www.a.com;charset utf-8;#access_log  /var/log/nginx/host.access.log  main;ssl_session_cache   shared:SSL:10m;ssl_session_timeout 10m;ssl_certificate     /etc/nginx/cacert.pem;ssl_certificate_key /etc/nginx/privkey.pem;ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on; 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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods *;add_header Access-Control-Allow-Headers *;add_header Access-Control-Allow-Credentials true;location / {root   /usr/share/nginx/html;index  index.html index.htm;}# location / {#     proxy_pass   http://xxx:8081/a;#     proxy_redirect off;#     proxy_set_header Host $host;#     proxy_set_header X-Real-IP $remote_addr;#     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# }error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

(1)这里的ssl_protocols表示什么意思呢?

在nginx中,ssl_protocols表示支持的SSL/TLS协议版本。SSL/TLS是一种加密协议,用于保证客户端和服务器之间的通信安全。ssl_protocols指定了nginx服务器支持的SSL/TLS协议版本,可以设置多个协议版本,以逗号分隔。常见的SSL/TLS协议版本包括:

  • SSLv2:SSL版本2,已经被废弃,不再被安全地使用。

  • SSLv3:SSL版本3,已经被广泛使用,但由于存在安全漏洞,已经被TLS取代。

  • TLSv1:TLS版本1.0,是SSLv3的升级版,由于安全性更好,被广泛使用。

  • TLSv1.1:TLS版本1.1,是TLSv1的升级版,提供更强的安全性。

  • TLSv1.2:TLS版本1.2,是TLSv1.1的升级版,目前被视为最安全的TLS协议版本。

  • TLSv1.3:TLS版本1.3,是TLSv1.2的升级版,提供更快的握手速度和更好的安全性。

在nginx中,可以使用ssl_protocols指定支持的SSL/TLS协议版本,例如:

ssl_protocols TLSv1.2 TLSv1.3;

这表示nginx服务器只支持TLSv1.2和TLSv1.3两个协议版本,如果客户端使用其他版本的协议进行连接,则会被服务器拒绝。通过设置ssl_protocols,可以提高通信的安全性和可靠性。

(2)ssl_ciphers(我猜的是生成私钥时候所需那个【私钥加密密码】)

获取SSL/TLS加密算法可以参考以下两种方式:

  • 查看Nginx官方文档:Nginx官方文档提供了ssl_ciphers配置项的说明,其中包含了一些推荐的加密算法列表,可以作为参考。具体可以参考官方文档:ssl_ciphers

  • 使用SSL/TLS在线测试工具:有一些在线测试工具可以帮助你生成安全性较高的SSL/TLS加密算法列表,例如SSL Labs、Mozilla SSL Configuration Generator等。这些工具可以根据你的要求和实际情况生成一个符合要求的加密算法列表。

无论是哪种方式,都需要考虑到实际情况和安全性要求,选择合适的加密算法。可以根据需要进行调整,以达到最优的性能和安全性。

一些中国大陆访问速度较快的SSL/TLS在线测试工具,供您选择:

  • SSL Labs:SSL Labs是一个比较知名的在线测试工具,可以测试服务器的SSL/TLS配置,评估安全性等级,并提供优化建议。

  • Mozilla SSL Configuration Generator:Mozilla SSL Configuration Generator是一个基于Mozilla的SSL/TLS安全性建议生成加密算法列表的在线测试工具。

  • SSL Checker:SSL Checker是一个简单的在线工具,可以测试SSL证书和配置是否有效,支持多种协议和算法。

  • Qualys SSL Labs:Qualys SSL Labs是一个全面的在线测试工具,可以测试SSL/TLS配置、证书链、加密算法等多个方面的安全性。

  • Hardenize:Hardenize是一个综合的在线测试工具,可以测试SSL/TLS配置、安全性、性能等多个方面的指标,并提供优化建议。
    这些工具都可以根据您的需求和实际情况生成一个符合要求的加密算法列表。由于网络环境的复杂性和变化性,建议您多测试几个工具,以便得到更准确的测试结果。

相关文章:

如何通过openssl生成公钥和私钥?

1、生成RSA秘钥的方法 生成RSA秘钥的方法: openssl genrsa -des3 -out privkey.pem 2048 注:建议用2048位秘钥,少于此可能会不安全或很快将不安全。 这个命令会生成一个2048位的秘钥,同时有一个des3方法加密的密码&#xff0c…...

Verilog的If语句和Case语句

这篇文章将讨论 verilog 中两个最常用的结构----if语句和case语句。在之前的文章中学习了如何使用过程块(例如always块)来编写按顺序执行的verilog 代码。此外还可以在过程块中使用许多语句----统称为顺序语句,如case 语句和 if 语句。这篇文…...

HJ31 单词倒排

描述 对字符串中的所有单词进行倒排。 说明: 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时&#xf…...

leetcode——203.移除链表元素

文章目录🐨1.题目🪅2.解法1-头节点迭代🌿2.1 思路🌿2.2 代码实现🦆3. 解法2-创建新链表🎏3.1 思路🎏3.2 代码实现🐐4. 题目链接🐨1.题目 给你一个链表的头节点head和一个…...

GPT-4来袭:开启人工智能新时代

文章目录介绍GPT4 模型演示示例示例 1示例 2示例 3示例 4示例 5最后Reference介绍 2023年3月15日,OpenAI公司正式发布了先进的自然语言处理模型GPT-4,前不久发布的GPT-3.5模型只能理解文字的语言模型,而新发布的GPT4则是多模态模型&#xff…...

芯微电子IPO终止:业绩开始大幅下滑,王日新、王苟新兄弟不同命

近日,深圳证券交易所披露的信息显示,黄山芯微电子股份有限公司(下称“芯微电子”)申请撤回发行上市申请文件。因此,深圳证券交易所决定终止对其首次公开发行股票并在创业板上市的审核。 据贝多财经了解,芯…...

【C++】用手搓的红黑树手搓set和map

目录 一、set/map的底层结构 1、set/map的源码 2、利用模板区分set/map 3、利用仿函数控制比较大小 二、set/map的迭代器(红黑树的迭代器) 1、红黑树的begin、end迭代器 2、红黑树迭代器的operator 3、红黑树迭代器的operator-- 三、set的const…...

【C++】空指针弃NULL用nullptr

空指针(null pointer)不指向任何对象,在试图使用一个指针之前代码可以首先检查它是否为空。声明空指针的3种方法: int* p1 NULL; int* p2 nullptr; int* p3 0; 在C语言中常用NULL生成空指针,NULL是一个宏&#xf…...

【selenium学习】数据驱动测试

数据驱动在 unittest 中,使用读取数据文件来实现参数化可以吗?当然可以。这里以读取 CSV文件为例。创建一个 baidu_data.csv 文件,如图所示:文件第一列为测试用例名称,第二例为搜索的关键字。接下来创建 test_baidu_da…...

嵌入式硬件电路设计的基本技巧

目录 1 分模块 2 标注关键参数 3 电阻/电容/电感/磁珠的注释 4 可维修性 5 BOM表归一化 6 电源和地的符号 7 测试点 8 网络标号 9 容错性/兼容性 10 NC、NF 11 版本变更 12 悬空引脚 13 可扩展性 14 防呆 15 信号的流向 16 PCB走线建议 17 不使用\表示取反 不…...

Spring MVC 图片的上传和下载

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

远程工具神器之MobaXterm (小白必看)

目录 1、介绍 2、ssh连接详解过程 3、特点 1、介绍 带有 X11 服务器、选项卡式 SSH 客户端、网络工具等的 Windows 增强型终端。 MobaXterm 是您远程计算的终极工具箱。在单个Windows应用程序中,它提供了大量功能,这些功能是为程序员,网站管…...

VRIK+Unity XR Interaction Toolkit 实现VR上半身的追踪(附带VRM模型导入Unity方法和手腕扭曲的解决方法)

文章目录📕第一步:配置 OpenXR XR Interaction Toolkit 的开发环境📕第二步:导入人物模型⭐VRM 模型导入 Unity 的方法📕第三步:配置 VRIK⭐给模型加上 VRIK 组件⭐将模型的头部和手部的位置作为 VR 追踪目…...

【C++进阶】map的介绍和使用

文章目录map的介绍map的模板参数介绍map的容器介绍map重要容器接口的介绍及使用构造函数增删查改迭代器的使用map的介绍 map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。在map中,键值key通常用于排序和惟一地标识…...

第十四届蓝桥杯三月真题刷题训练——第 15 天

目录 第 1 题:斐波那契与7 问题描述 答案提交 运行限制 代码: 第 2 题:小蓝做实验 问题描述 答案提交 运行限制 代码: 第 1 题:斐波那契与7 问题描述 斐波那契数列的递推公式为: FnFn−1Fn−2​, 其中 F1F21…...

HTML5是什么?怎么学习HTML5?

HTML5 是什么?HTML5是什么?相信这个问题并不容易回答,大多数人对于HTML5的概念仅仅是听说过而已,非要让他说出个所以然来,结果只能让你失望。相比普及了近十四年的HTML4来说,HTML5带来的震撼其实丝毫不亚于…...

个人算法题精简导航整理(精炼汇总,含知识点、模板题、题单)

文章目录前言导航注意事项技巧类自定义Pair排序N维数组转一维位运算状态压缩算法基础枚举 √指数型枚举排列型枚举组合型枚举模拟 √日期天数问题:平年闰年情况递归&分治 √贪心 √货仓选址-模板题排序 √归并排序前缀和&差分 √前缀和差分(一维…...

Mac 和 Win,到底用哪个系统学编程?

今天来聊一个老生常谈的问题,学编程时到底选择什么操作系统?Mac、Windows,还是别的什么。。 作为一个每种操作系统都用过很多年的程序员,我会结合我自己的经历来给大家一些参考和建议。 接下来先分别聊聊每种操作系统的优点和不…...

文心一言---中国版的“ChatGPT”狂飙的机会或许要出现了

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…...

2023最全Python+Selenium环境搭建教程-你绝对想不到有这么简单!

还有视频版本结合项目实战介绍,轻松学习! PythonSelenium自动化测试环境搭建Web自动化测试全套教程_哔哩哔哩_bilibiliPythonSelenium自动化测试环境搭建Web自动化测试全套教程共计180条视频,包括:1、Web自动化测试需求和挑战、2…...

RailSAM:驯 服 SAM与 适 配 器 的 铁 路 分 割精读

一、整体总结研究领域: 基于视觉基础模型的铁路场景语义分割(轨道分割)解决问题: 解决传统铁路分割方法依赖大量标注数据、泛化能力差、计算开销大的问题,同时探索如何将通用大模型(SAM)有效迁移…...

数据处理与统计分析----沙箱

命令行操作沙箱...

新手避坑指南:用Selenium和MongoDB爬取东方财富股吧评论(附完整代码)

金融数据爬虫实战:Selenium与MongoDB避坑全攻略 第一次尝试用Selenium爬取东方财富股吧数据时,我盯着屏幕上第20次出现的"方正证券吧"跳转页面,终于意识到自己触发了反爬机制。作为过来人,我整理出这份涵盖环境配置、反…...

效率革命:跳过java安装与配置,用快马平台秒级验证算法性能

效率革命:跳过Java安装与配置,用快马平台秒级验证算法性能 最近在优化一个数据处理模块时,我需要快速验证几种排序算法的性能差异。按照传统开发流程,至少要经历以下步骤: 下载并安装JDK,配置环境变量选择…...

Win10主机与Win7虚拟机共享文件夹超详细指南(VMware/虚拟机新手必看)

Win10主机与Win7虚拟机无缝共享文件夹全流程解析 刚接触虚拟机的用户经常会遇到一个棘手问题:如何在主机和虚拟机之间高效传输文件?复制粘贴受限、U盘来回插拔效率低下,而共享文件夹功能正是解决这一痛点的最佳方案。本文将手把手带你完成从零…...

随着AI和电商重塑消费者购买行为,全球美妆市场增长10%

随着数字优先和AI影响下的全球电商加速发展,线上销售额增速达到线下门店的6倍 全球消费者情报领军企业NielsenIQ (NYSE:NIQ)今日发布《2026年美妆行业现状报告》。报告显示,全球美妆市场同比增长10%,电商销售额增速达到线下门店的6倍。该结果…...

【Ubuntu20.04】libudev-dev依赖冲突排查与修复指南

1. 遇到libudev-dev安装问题怎么办? 最近在Ubuntu 20.04上安装libudev-dev时,你是不是也遇到了烦人的依赖冲突?作为一个长期使用Ubuntu的老用户,我完全理解这种挫败感。记得我第一次遇到这个问题时,系统提示"无法…...

github上传项目代码手把手运行,包含部分坑

git config --global init.defaultBranch main 自定义默认分支名称,远程分支是main git init(默认是master) git config --global init.defaultBranch main(以后默认使用main) git push -f origin main (强制覆盖…...

ai辅助开发:向快马描述你的微服务项目,智能生成全套java环境配置与编排文件

最近在搭建一个分布式微服务项目时,遇到了环境配置这个老大难问题。不同模块需要不同中间件,团队成员电脑环境各异,每次新人加入都要折腾半天环境。好在发现了InsCode(快马)平台的AI辅助开发功能,用自然语言描述需求就能自动生成全…...

项目介绍 MATLAB实现基于概率路图法(PRM)进行无人机三维路径规划的详细项目实例(含模型描述及部分示例代码) 专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持

MATLAB实现基于概率路图法(PRM)进行无人机三维路径规划的详细项目实例 更多详细内容可直接联系博主本人 或者访问对应标题的完整博客或者文档下载页面(含完整的程序,GUI设计和代码详解) 随着无人机技术的快速发展&…...