前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何创建自签名证书

如何创建自签名证书

原创
作者头像
小铁匠米兰的v
发布2018-08-17 15:24:12
1.9K0
发布2018-08-17 15:24:12
举报

什么是自签名TLS证书?

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

创建证书

  • 切换到root用户并切换到要在其中创建证书和密钥对的目录。该位置将根据您的需求而有所不同。在这里我们将使用/root/certs
代码语言:javascript
复制
su - root
mkdir /root/certs && cd /root/certs
  • 创建证书:
代码语言:javascript
复制
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:创建不需要密码的证书。如果排除此选项,则每次重新启动使用它的应用程序时,都需要在控制台中输入密码。

以下是输出示例:

代码语言:javascript
复制
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访问它:
代码语言:javascript
复制
chmod 400 /root/certs/MyKey.key
  • 备份证书并输入外部存储。

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


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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是自签名TLS证书?
  • 创建证书
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档