Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

简介: 本文讲的是Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南,在本文中,我会向大家介绍如何在Windows、macOS和Ubuntu Linux上设置使用HTTPS与ASP.NET Core的本地开发环境,另外,我还将介绍如何创建自签名证书并将其添加到受信任的根证书存储区,以消除烦人的浏览器提示消息。
本文讲的是 Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

在本文中,我会向大家介绍如何在Windows、macOS和Ubuntu Linux上设置使用HTTPS与ASP.NET Core的本地开发环境,另外,我还将介绍如何创建自签名证书并将其添加到受信任的根证书存储区,以消除烦人的浏览器提示消息。最后,我将介绍如何设置用于ASP.NET Core的内置Web服务器的Kestrel来使用HTTPS。

创建自签名证书,设置信任项,就可以避免烦人的浏览器提示,记录了自签名证书的整个过程。在Windows和Linux上安装证书完全是两个不同的进程,但在ASP.NET Core环境中,跨平台开发是开发过程不可或缺的一部分,这一点至关重要。然后,Chrome中的一些通知消息,比如 “你的连接不安全”,有关通用名称匹配的Chrome消息以及关于在ASP.NET Core和Kestrel中配置HTTPS的具体信息。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

所以我认为创建一个自签名证书详细指南,涵盖Windows和Linux的详细信息将是一个好主意。

为什么选择HTTPS?

众所周知,互联网正在快速向着HTTPS时代前进。目前,HTTPS已经普遍存在了。你每天使用的大部分网站(如Google、Facebook、Microsoft、银行网站)都在使用HTTPS。

如果你在过去2—3年内开发过应用程序,那么你的Web应用程序的生产版本很有可能以HTTPS方式运行。展望未来,绝大多数网站将使用HTTPS。

互联网上将有超过50%的网页浏览量在使用HTTPS,Google Chrome的最终目标是将所有HTTP网站标记为不安全,所有通过HTTPS的通信都是加密的。这意味着没有人可以窥探你的信息。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

为什么需要本地开发的自签名证书?

每次访问HTTPS站点时,你的浏览器都会下载站点的证书,其中包含使用该证书颁发机构(CA)的私钥签名的站点托管的服务器的公钥。

你的操作系统会附带预先安装的受信任的根CA列表,浏览器使用这些根CA列表来验证证书,这是通过验证你的浏览器从站点下载的证书中的公钥是否由发出该证书的CA进行签名来完成的。

证书还包含服务器的域名,并被浏览器用来确认它所连接的站点与由CA颁发的证书中列出的站点相同。之后,进行加密。 

由于我们不使用CA颁发的本地开发证书,因此我们可以发出自签名证书,然后将此自签名证书添加到我们受信任的根证书颁发机构存储区。这样,你的浏览器将信任证书。

自签证书的安全性如何?

自签名证书通过HTTPS提供加密通信,就像证书颁发机构(CA)颁发的证书一样,至少连接一次。但这本身并不能使自签证书安全,例如,如果没有正确的安装和信任,自签名证书就容易受到中间攻击者的威胁。由于信任自签名证书的唯一方法是在受信任的根CA存储区中为访问该站点的每个设备手动导入证书,自签名证书默认情况下实际上是不安全的。

在本地主机上,由于没有与公共网站相同的安全要求。因此,使用自签名证书进行本地开发是为了能够使用HTTPS在本地开发。创建一个自签名证书,并在Windows上信任它,在Windows中使用ASP.NET Core创建自签名证书在Powershell中非常简单,我写了一个Powershell脚本来处理。

只需用管理员权限打开Powershell,在脚本中设置证书的密码,然后运行脚本。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

创建一个自签名证书,并在macOS上信任它

为你的证书创建配置文件:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

将内容粘贴到conf文件中并保存文件:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

确保OpenSSL库安装在macOS上,运行以下命令检查OpenSSL是否已安装:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

如果未安装OpenSSL,请使用brew安装OpenSSL:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

使用OpenSSL运行以下2个命令,使用OpenSSL在macOS中创建自签名证书:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

相信macOS上的自签名证书真的很简单,打开KeyChain Access应用程序(利用KeyChain的Spotlight搜索找到它)。

在“钥匙串”显示窗中选择“系统”,然后将.pfx证书拖到证书列表窗口中。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

要信任你的自签名证书,请双击你的证书,并在信任部分下选择始终信任。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

创建一个自签名证书并在Ubuntu Linux上信任它

在Ubuntu Linux中创建自签名证书更简单。所需要的是生成自签名证书的两个简单命令,以及将证书复制到可信存储的单个命令。

为你的证书创建配置文件:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

使用openssl运行以下2个命令,以在Ubuntu Linux中创建自签名证书:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

然后,运行以下certutil命令将证书添加到受信任的CA根存储区:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

要确认或列出使用certutil安装的受信任证书,请运行以下命令:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

要从受信任的CA根存储库中删除证书,请运行以下命令:

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

在ASP.NET核心中配置HTTPS

一旦你创建了一个自签名证书,并在Linux或Windows上的根CA存储中信任证书,则将ASP.NET Core配置为和HTTPS一样的过程。

首先将先前在Windows或Linux中创建的.pfx证书复制到项目目录的根目录。

然后,创建一个包含证书文件名和密码的certificate.json配置文件。我喜欢将它保存在一个单独的文件中,因为这样会使事情变得有步骤达到简化的目的。 ASP.NET Core 2允许你在appsettings.json中配置Kestrel和HTTPS,但由于配置非常复杂,我更喜欢这种更简单配置的方法。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

特别重要的是要明确地设置防伪令牌cookie以使用安全的cookie。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

完成更改后,只需构建并运行该项目,你就可以看到Chrome在没有任何警告信息的情况下运行,并将你的网站显示为安全的。

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南

Windows、macOS和Linux平台设置HTTPS以及自签名证书详细指南




原文发布时间为:2017年8月29日
本文作者:xiaohui 
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
2月前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
325 4
|
3月前
|
监控 Windows
Windows平台RTSP|RTMP播放器如何实时调节音量
我们在做Windows平台RTSP、RTMP播放器的时候,有这样的技术需求,特别是多路监控的时候,并不是每一路audio都需要播放出来的,所以,这时候,需要有针对音量调节的设计
|
2月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
67 0
Windows 平台安装 MongoDB
|
3月前
|
监控 C# 块存储
Windows平台RTSP|RTMP播放器如何叠加OSD文字
做Windows平台RTSP|RTMP播放器的时候,特别是多路播放场景下,开发者希望可以给每一路RTSP或RTMP流添加个额外的OSD台标,以区分不同的设备信息(比如添加摄像头所在位置),本文主要探讨,如何动态添加OSD台标。
Windows平台RTSP|RTMP播放器如何叠加OSD文字
|
3月前
|
存储 开发者 Windows
WINDOWS 环境变量设置方法
本文旨在帮助使用Windows电脑的开发者们为其设备配置环境变量,以更好地支持大模型应用的开发工作。文中详细介绍了三种配置方法:一是将环境变量设置为系统级变量;二是在命令行界面通过`SET`命令或`PowerShell`临时设置变量;三是借鉴MAC的方式,创建全局环境变量文件`.zshrc`进行配置。这些方法简单实用,便于根据实际需求选择适合的方式进行配置。
|
3月前
|
Linux Android开发 iOS开发
Windows平台RTSP|RTMP播放器如何实现实时录像功能
Windows平台RTSP、RTMP播放器实时录像接口设计,实际上,除了Windows平台,我们Linux、Android、iOS平台也是一样的设计,单纯的录像模块,如果做的全面,也不是一两个接口可以搞定的
102 1
|
2月前
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
299 0
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
107 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
375 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
86 3