文章插图
这本小抄风格的指南提供了 OpenSSL 命令的快速参考,这些命令在常见的日常场景中非常有用 。
- 来源:https://linux.cn/article-12293-1.html
- 作者:Mitchell Anicas
- 译者:Xingyu.Wang
如何使用本指南
- 如果你不熟悉证书签署请求(CSR),请阅读第一部分 。
- 除了第一部分,本指南采用了简单的小抄格式:自带了命令行代码片段 。
- 跳到与你准备完成的任务相关的任何部分 。
- 大多数命令都是单行的,为了清晰起见,已经扩展到多行(使用符号) 。
每当你生成一个 CSR 时,你会被提示提供有关证书的信息 。这些信息被称为 区分名称(Distinguised Name)(DN) 。DN 中的一个重要字段是 通用名称(Common Name)(CN),它应该是你打算使用证书的主机的 完全合格域名(Fully Qualified Domain Name)(FQDN) 。当创建 CSR 时,也可以通过命令行或文件传递信息来跳过交互式提示 。
DN 中的其他项目提供了有关你的业务或组织的附加信息 。如果你是从证书机构购买 SSL 证书,通常要求这些附加字段(如“ 组织(Organization)”)准确地反映你的组织的详细信息 。
下面是一个 CSR 信息提示的例子:
---Country Name (2 letter code) [AU]:USState or Province Name (full name) [Some-State]:New YorkLocality Name (eg, city) []:BrooklynOrganization Name (eg, company) [Internet Widgits Pty Ltd]:Example Brooklyn CompanyOrganizational Unit Name (eg, section) []:Technology DivisionCommon Name (e.g. server FQDN or YOUR name) []:examplebrooklyn.comEmail Address []:
如果你想非交互式地回答 CSR 信息提示,你可以通过在任何请求 CSR 信息的 OpenSSL 命令中添加 -subj 选项来实现 。这里是该选项的一个例子,使用上面代码块中显示的相同信息:-subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=examplebrooklyn.com"
现在你已经了解了 CSR,可以自由跳转到本指南中涵盖你的 OpenSSL 需求的任何一节 。生成 CSR本节介绍了与生成 CSR(以及私钥,如果它们还不存在的话)有关的 OpenSSL 命令 。CSR 可以用来向证书颁发机构请求 SSL 证书 。
请记住,你可以通过上一节中提到的 -subj 选项非交互式地添加 CSR 信息 。
生成一个私钥和一个 CSR
如果你想使用 HTTPS(HTTP over TLS)来保护你的 Apache HTTP 或 Nginx Web 服务器的安全,并且你想使用一个证书颁发机构(CA)来颁发 SSL 证书,那么就使用这个方法 。生成的 CSR 可以发送给 CA,请求签发由 CA 签名的 SSL 证书 。如果你的 CA 支持 SHA-2,请添加 -sha256 选项,用 SHA-2 签署 CSR 。
这条命令从头开始创建一个 2048 位的私钥(domain.key)和一个 CSR(domain.csr):
openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
回答 CSR 信息提问,完成该过程 。选项 -newkey rsa:2048 指定密钥应该是 2048 位,使用 RSA 算法生成 。选项 -nodes 指定私钥没有用密码加密 。这里没有包含 -new 选项,而是隐含在其中,表示正在生成一个 CSR 。
从现有的私钥中生成一个 CSR
如果你已经有了私钥,并想用它向 CA 申请证书,请使用这个方法 。
该命令基于现有的私钥(domain.key)创建一个新的 CSR(domain.csr):
openssl req -key domain.key -new -out domain.csr
回答 CSR 信息提问,完成该过程 。选项 -key 指定一个现有的私钥(domain.key),它将被用来生成一个新的 CSR 。选项 -new 表示正在生成一个 CSR 。
从现有的证书和私钥生成 CSR
如果你想更新现有的证书,但由于某些原因,你或你的 CA 没有原始的 CSR,请使用这个方法 。基本上可以省去重新输入 CSR 信息的麻烦,因为它是从现有证书中提取信息的 。
推荐阅读
- nginx开启ssl并把http重定向到https的两种方式
- 阿里云:SSL认证申请及配置流程
- 一文读懂HTTPS以及SSL单向验证和双向验证
- 如何利用 SSL/TLS 保护你的 Linux 邮件服务
- kali渗透:web登录密码嗅探神器SSLstrip,这样使用才是正确姿势
- 阿里云centOS Ngnix配置ssl证书
- 宝塔面板开启反向代理后,怎么自动续签Let's Encrypt免费SSL证书
- Nginx服务器安装SSL证书方法教程
- 推荐一款github上开源的SSL VPN
- 免费的SSL证书它不香吗?香,真香