如何在ASP.NET Core网站中启用SSL证书?

0
5959

对于谷歌来说,当下SSL证书已经变得非常重要(在前100万个网站中,51.8%都拥有该增强的安全功能),这意味着它们对你来说也应当十分重要。

在向公共网络发布ASP.NET Core站点之前,你需要将数字安全考虑在内。默认情况下,在超文本传输协议(HTTP)中,所有网络服务器都是通过80端口来处理流量的。HTTP主要定义了网络浏览器发送和接收数据的方式。

然而,这一形式的通信也有某些漏洞,可能影响到网站的性能和声誉。

对于软件开发者来说,最好的做法是在所有托管网页上启用安全套接层(SSL)技术。以下是具体做法。

SSL证书基本知识

网络浏览器中地址栏旁的挂锁图标代表当前的网站受到了SSL的保护。但这到底意味着什么?这表示数据请求将通过443端口而不是HTTP正常的80端口发送。经由网络安全的数据通信也称为HTTPS。

如果你的ASP.NET Core项目将需要存储用户名和密码,或者执行信用卡交易,那么支持HTTPS就是必须的。否则,你的访问和客户就将处于危险之中,容易将个人信息暴露给入侵者和黑客。

在经由80端口的HTTP请求中,数据是通过明文的形式传输的,这意味着只要侵入本地wi-fi网络,就可以对信息进行拦截。SSL证书消除了这一风险,因为它们可以加密浏览器和web服务器之间所有传输的数据。因此,即使黑客试图解析发送信息,也不能解码它。

SSL证书是由名为证书机构(CA)的组织签发的,CA主要负责验证申请证书的公司或个人的身份。一旦批准、安装完成,证书就能够向访问者提供保证,保证网站是安全和经过加密的。

启用HTTPS重定向

当一个人在浏览器中输入一个网页地址时,最初的请求包将通过HTTP的80端口发送。为了在ASP.NET Core站点上使用SSL证书,你需要让你的web浏览器立即把流量重定向到443端口,进行HTTPS请求。为了达到这一目的,请按以下步骤操作:

  • 在视觉化Basic应用程序中打开你的源代码
  • 编辑“启动”类

app.UseHttpsRedirection();

  • 在“配置”功能内添加以下行:app.UseHttpsRedirection();

这将命令你的web浏览器为所有入站请求加载SSL证书。接下来,你需要添加代码命令来为HTTPS连接打开和使用正确的网络端口。

  • 在你的ASP.NET Core项目中编辑“程序”类

.UseSetting(“https_port”, “443”)

如果你在web或应用程序服务器上设置了防火墙,那么还必须手动将其策略更新到允许通过443端口进行外部请求。

使用自签名证书

由于ASP.NET Core项目尚处于发展早期,你可能还没有准备好从CA接收完整的SSL证书,尤其是考虑到它们高昂的价格。相反,你可以为项目使用免费的自签名证书,用它们来在开发环境中进行测试项目。

为了在ASP.NET Core中启用自签名SSL验证,请遵循这些步骤:

  • 启动Windows命令提示符实用程序

dotnet dev-certs https –trust

  • 运行以下.NET命令:dotnet dev-certs https –trust
  • 点击“是的”,以确认你希望信任自签名证书

现在,当你对网站进行测试,而URL的开头又使用了“https”时,web浏览器就会认出自签名证书,然后显示出挂锁标志,以表明使用了有效的SSL证书。注意,你将需要在所有工作站上运行这一流程,以进行测试。

连接SSL到Azure

如果你正在将ASP.NET Core项目部署到微软Azure云平台,那么你可以将SSL配置与web app绑定在一起,从而就不用再担心在本地环境中管理证书了。当前,SSL绑定功能在Azure账户的基础、标准、高级或隔离层中是可用的。

若要在Azure配置中设置SSL绑定功能,请按以下步骤操作:

  • 导航到web浏览器的Azure入口,然后利用你的账户凭证进行登录。
  • 点击屏幕左侧菜单中的“App 服务”
  • 从服务列表中选择你的ASP.NET Core项目的名称
  • 打开你从证书机构接收到的所有个人SSL文件,然后使用像Notepad这样的文本编辑器将其合并成一个文件。

mergedcertificate.crt

  • 将合并的SSL证书文件保存为一个新对象,命名为mergedcertificate.crt

openssl pkcs12 -export -out myserver.pfx -inkey private-key-file -in merged-certificate-file

  • 在命令提示符窗口运行以下命令,以便将.crt转换成私有密钥文件:openssl pkcs12 -export -out myserver.pfx -inkey private-key-file -in merged-certificate-file
  • 导出期间,系统将会提示你为新.pkf文件选择一个密码
  • 转到Azure窗口的“SSL设置”部分,然后点击“上传的证书”
  • 点击“添加绑定”链接,然后选择“基于IP的SSL”选项

技术拯救安全

如果你认为,互联网已然成为了黑客和政府共同侵犯隐私和窃取个人数据的一个所在地,那么这不是你的想象。IBM的主席近来说到:“对世界上所有的公司来说,网络安全都是最大的威胁。”可以说,他的这一大胆的声明是正确的。

有了SSL证书和虚拟私有网络,我们就有了能够加密计算机和互联网之间的数据流的技术,对于黑客来说,这将使其恶意业务变得更难进行。今年,花在网络犯罪上的费用据估计已经接近1万亿美元,因此,就很难责怪谷歌大力支持对网站进行锁定了。

最后的思考

尽管从技术上来说,从HTTP迁移到HTTPS是可选的,但是你应当意识到事实上并不是。正如之前提到的,谷歌正大力推动让整个互联网变得更安全,而谁又能责怪它们呢?一切都是为了更安全的客户体验。

尽管那些没有SSL证书的网站似乎并不会受到惩罚,降低它们的搜索排名,但谷歌确实会奖励那些使用了SSL证书的网站,将其SEO排名提高一点,因此,两者的效果是一样的。在这场猫捉老鼠的游戏中,也就是当下争夺第一页第一名位置的游戏中,你决不能放弃任何获得优势的机会。

LEAVE A REPLY

Please enter your comment!
Please enter your name here