最常见的OpenSSL命令(一)

简介: 最通用的SSL工具之一是OpenSSL,它是SSL协议的开源实现。几乎每个平台都有OpenSSL版本,包括Windows,Linux和Mac OS X.OpenSSL通常用于为许多不同平台(包括Apache)创建CSR和私钥。但是,它还有数百种不同的功能,允许您查看CSR或证书的详细信息,比较证书的MD5哈希和私钥(以确保它们匹配),验证证书是否在任何网站上正确安装,并将证书转换为其他格式。可以在此处找到OpenSSL for Windows的编译版本。

最通用的SSL工具之一是OpenSSL,它是SSL协议的开源实现。几乎每个平台都有OpenSSL版本,包括Windows,Linux和Mac OS X.OpenSSL通常用于为许多不同平台(包括Apache)创建CSR和私钥。但是,它还有数百种不同的功能,允许您查看CSR或证书的详细信息,比较证书的MD5哈希和私钥(以确保它们匹配),验证证书是否在任何网站上正确安装,并将证书转换为其他格式。可以在此处找到OpenSSL for Windows的编译版本。

如果您不想打扰OpenSSL,可以使用我们的SSL证书工具执行许多相同的操作。下面,我们列出了最常见的OpenSSL命令及其用法:


常规OpenSSL命令


这些命令允许您生成CSR,证书,私钥以及执行其他其他任务。


Base64编解码

编码:

echo "我是一片云 天空是我家\n朝迎旭日升 暮送夕阳下" | openssl enc -base64

输出:

5oiR5piv5LiA54mH5LqRIOWkqeepuuaYr+aIkeWutlxu5pyd6L+O5pet5pel5Y2H
44CA5pqu6YCB5aSV6Ziz5LiLCg==

对上面的字符串解码

echo '5oiR5piv5LiA54mH5LqRIOWkqeepuuaYr+aIkeWutlxu5pyd6L+O5pet5pel5Y2H
44CA5pqu6YCB5aSV6Ziz5LiLCg==' |openssl enc -base64 -d

输出:

我是一片云 天空是我家\n朝迎旭日升 暮送夕阳下
注意:这里编码和解码都是用的 enc 命令,只是解码加了 -d参数。


md5摘要

形成摘要:

echo "我是一片云 天空是我家 朝迎旭日升 暮送夕阳下" | openssl md5

输出

(stdin)= 2418617a0586d93db1db5e43260a43bb

校验摘要:

再生成一次,对比生成的字符串。


生成服务器端 web 服务器密码

用于基本验证访问的服务器密码, 密码只能是8位, 多了会有警告。

openssl passwd -crypt yourpass

会生成

U0tfb.p0Pit5I

重复执行上面的指令时密码会有变化。所以密码是有随机变量在里面。

保存到 ·/etc/nginx/conf.d/pass`文件中

$ cat /etc/nginx/conf.d/pass
youradmin:U0tfb.p0Pit5I

密码文件是 用户名:加密密码 的格式存储的。


Nginx服务器的配置

server {
        server_name  yourserver.cn;
        root /var/www/webapps/;
        index index.html index.htm;
        location / {
                auth_basic "server login auth";
                auth_basic_user_file conf.d/pass;
...

这样就能通过基本验证, 保护服务器的内容只能在输入密码的情况下进行访问。


生成新的私钥和证书签名请求

证书请求:

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

随后可以把证书请求发给颁发机构来完成证书的生成(准备好钱哟)。

如果仅是测试用,可以生成自签名证书(不花钱,但要手动导入浏览器)


可以通过以下命令执行此操作:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

如果您不想使用密码来保护私钥,也可以添加-nodes(的缩写no DES)。否则,它将提示您输入“至少4个字符”的密码。

days您可以将参数(365天)替换为任何数字以修改到期日期。然后,它将提示您输入“国家名称”之类的内容,但是您只需点击Enter并接受默认值即可。

添加-subj '/CN=localhost'以消除关于证书内容的问题(替换localhost为所需的域)。


对于在自动化中使用此工具的其他人,这里是该主题的所有常用参数:-subj "/C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=www.example.com"

除非您以前将自签名证书导入浏览器,否则它们不会与任何第三方进行验证。如果需要更高的安全性,则应使用由证书颁发机构(CA)签名的证书

如果没钱(比如我),可以用 let's encrypt 。只要您的Web服务器可以通过Internet上的端口80上的FQDN对其进行访问,您就可以使用LetsEncrypt并获得免费的完整CA证书(有效期为90天,可以自动更新),该证书不会给出任何浏览器警告/消息。不过这已经和OpenSSL没啥关系了。

为现有私钥生成证书签名请求(CSR)

openssl req -key mydomain.key -new -out mydomain.csr

根据现有证书生成证书签名请求

 

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

从私钥中删除密码

openssl rsa -in privateKey.pem -out newPrivateKey.pem



相关文章
|
安全 Shell 网络安全
openssh和openssl的区别是什么?
【4月更文挑战第14天】openssh和openssl的区别是什么?
1585 0
|
运维 关系型数据库 OLAP
阿里云百炼 x AnalyticDB向量引擎, 搭积木式轻松开发专属大模型应用
对大模型应用跃跃欲试,但奈何技术栈复杂难以下手?已经进行试水,但缺乏调优手段无法保障召回率和问答准确度?自行搭建大模型、向量检索引擎、服务API等基础组件难以运维?大模型种类繁多,但缺乏行业模型和应用模板?阿里云百炼 x AnalyticDB向量引擎推出一站式企业专属大模型开发和应用平台,像搭积木一样轻松完成企业专属大模型应用的开发,提供应用API,可一键接入企业自己的业务应用对外提供服务。
2533 2
|
开发工具 Python
milvus的delete操作
milvus的delete操作
1522 0
|
Android开发 开发工具 IDE
Android gradle问题解决: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat
1. 问题描述: Android Studio在运行模拟器某些机型或者真机某些机型的时候发生闪退。 错误如下: Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.
2601 0
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
存储
子网划分问题(实战超详解)_主机分配地址
本文详细介绍了子网划分的核心思想及步骤,通过实例演示如何根据所需主机数量借位生成子网,并确定每个子网的网络地址、广播地址及可用 IP 范围。以一个自治系统的具体需求为例,展示了子网划分的实际应用过程。
795 13
|
SQL 关系型数据库 MySQL
MySQL数据库常见报错案例与错误代码说明
MySQL数据库常见报错案例与错误代码说明
1038 0
|
自然语言处理 算法 IDE
求职季来了,让通义灵码陪你高效备战
技术岗面试有方法:用通义灵码提升编程实战能力。通义灵码作为智能编码助手,在求职时也可以成为程序员的“冲刺搭子”,提供精选面试模拟题、精准解析编程难题、秒速生成高效代码、优化算法思维等,从理论到实战,帮助开发者提升面试表现,快来体验吧,还有万份大礼等你赢取哦~
19056 10
|
算法 C++ Python
从入门到精通:C++ 学习路线指南,附详细学习计划
C++是一种高级编程语言,广泛用于开发操作系统、应用程序、游戏和各种工具。如果你想学习这门语言,以下是一个适合初学者的学习路线:
1396 0
|
前端开发 数据可视化 开发工具
前端git必备技能,如何合并分支以及出现合并冲突后如何解决
前端git必备技能,如何合并分支以及出现合并冲突后如何解决
284 0