如何创建自签名证书

什么是自签名TLS证书?

TLS/SSL是用于将正常流量包装在受保护的加密包装中的Web协议。得益于此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还可以帮助用户验证他们正在连接的站点的身份。在本教程中,我们将向您展示如何在Ubuntu 18.04上设置用于Apache Web服务器的自签名SSL证书。

创建证书

  • 切换到root用户并切换到要在其中创建证书和密钥对的目录。该位置将根据您的需求而有所不同。在这里我们将使用/root/certs
su - root
mkdir /root/certs && cd /root/certs
  • 创建证书:
openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key

系统将提示您将有关您的网站或组织的标识信息添加到证书中。您可以按照自己喜好填写,由于不会公开使用自签名证书,因此不需要此信息。如果此证书将传递给证书颁发机构进行签名,则信息需要尽可能准确。

以下是此命令中使用的OpenSSL选项的细分。还有许多其他选择,但这些选项将创建一个基本的证书。有关更多信息,请参阅终端中的man openssl

  • -newkey rsa:4096:创建4096位RSA密钥以与证书一起使用。RSA 2048是最新版本的OpenSSL的默认设置,但为了确保密钥大小,您应该在创建期间指定它。
  • -x509:创建自签名证书。
  • -sha256:使用265位SHA(安全散列算法)生成证书请求。
  • -days:确定颁发证书的时间长度(以天为单位)。对于自签名证书,可以根据需要增加此值。
  • -nodes:创建不需要密码的证书。如果排除此选项,则每次重新启动使用它的应用程序时,都需要在控制台中输入密码。

以下是输出示例:

root@localhost:~# openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key
Generating a 4096 bit RSA private key
..............................................................................+++
..............................................+++
writing new private key to 'MyKey.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Philadelphia
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linode
Organizational Unit Name (eg, section) []:Docs
Common Name (e.g. server FQDN or YOUR name) []:hostname.example.com
Email Address []:admin@example.com
  • 限制密钥的权限,以便只能root访问它:
chmod 400 /root/certs/MyKey.key
  • 备份证书并输入外部存储。

那么,生成证书后,最重要的是什么呢?当然是部署了,那么我们可以参考如何为Nginx创建自签名SSL证书为Apache创建自签名SSL证书这两篇文章,您已为服务器配置对客户端连接使用SSL加密。这样您就可以安全地处理请求,并阻止黑客阅读您的流量。但是自签名证书无法获取浏览器的信任,因此,我们还是建议您最好使用CA签名的证书。您可以在此处了解如何使用腾讯云免费的可信证书。 怎么样,学会了吗?快尝试购买一台服务器进行测试吧!或者直接在开发者实验室参加Linux 基础入门课程,学习更快哦!更多Linux教程请前往腾讯云+社区学习更多知识。


参考文献:《Create a Self-Signed TLS Certificate》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

HTTPS 原理剖析与项目场景

最近手头有两个项目,XX导航和XX产业平台,都需要使用HTTPS协议,因此,这次对HTTPS协议做一次整理与分享。

16110
来自专栏Timhbw博客

网站全站开启 HTTPS(二、腾讯云 SSL 证书)

2017-02-0612:19:27 发表评论 900℃热度 网站全站开启 HTTPS(一、又拍云一键部署) 之前写过又拍云的 SSL 证书一键部署,用的是 ...

801100
来自专栏吴伟祥

了解SSH加密和连接过程 转

SSH或安全shell是安全协议,也是安全管理远程服务器的最常用方式。通过使用多种加密技术,SSH提供了一种机制,用于在双方之间建立加密安全连接,对彼此进行身份...

12020
来自专栏猿天地

前后端API交互如何保证数据安全性?

前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要...

41320
来自专栏Java技术栈

干货 | 图解 https 单向认证和双向认证!

HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准。HTTP协议传输的数据都是...

59020
来自专栏信安之路

SSL_TLS 攻击原理解析

本文主要描述 HTTPS 中对于 ssl/tls 加密的攻击手法,什么是 HTTPS 呢?百度百科的解释如下:

25600
来自专栏How things work?

30分钟了解TCP/IP五层结构及常见概念

HTTP运行在TCP之上,有如下缺点:传输的内容是明文,客户端和服务端无法验证对方的身份。为了解决这两个问题,提出了HTTPS。HTTPS = HTTP + S...

1.2K40
来自专栏派森公园

SSH的工作原理

27240

获得具有商业签名的TLS证书

如果您打算托管一个可公开访问的使用HTTPS的网站,那么您将需要安装一个具有商业签名的TLS证书,这样访问您网站的人就不会在浏览器中收到有关不安全连接的警告。

11730
来自专栏上善若水

055 警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。

将签名命令上加一段话: -digestalg SHA1 -sigalg MD5withRSA 加上后就可以了

32240

扫码关注云+社区

领取腾讯云代金券