zoukankan      html  css  js  c++  java
  • [转]Asp.net Core Kestrel 免费实现https

    [From]​ https://www.cnblogs.com/jionsoft/p/12624867.html

    0、概述

    先了解下https是个啥: https://www.bilibili.com/video/BV1j7411H7vV

    so!只要给我们的web服务器配置一个证书就行了,证书可以买,也可以用免费的Let's Encrypt,此证书提供商是多个牛X大公司为了推进全球https化搞出来的,所以不用担心免费的会有啥问题。唯一的问题是90天有效期,所以你得提前免费续签,当然有办法容易的实现自动续签。
    为了实现自动化的证书申请、发放、续签、删除.....各种证书相关的功能,所以Let's Encrypt提出了个ACME协议,不同编程语言都可以实现这个协议来完成这些工作。本文要讲的内容就是这种方式。某只大牛在github上开源了一个库,这个库实现了前面说的这个什么协议,实现了自动申请证书,自动续签、自动与asp.net core内置Kestrel集成。仅仅需要几行配置。

    asp.net core 有多种发布模式

    img

    这种方式需要给IIS或Nginx..配置证书,其中IIS首选用win-acme,这个工具也实现上面说的ACME协议,使用它可以很容易在IIS中安装Let's Encrypt证书,并实现自动续签

    img

    我现在用的这种方式,服务器上啥都不装,直接一个发布好的asp.net core程序(一个文件夹)丢到服务器上,启动里面的.exe就可以运行。主要是因为简单,方便移动。

    在这种方式下,如果能在应用程序内部实现ACME协议自动申请证书然后配置给Kestrel,并实现自动续签,就完美了。然后github上搜出俩比较成熟的:ACMESharpCore LetsEncrypt ,我使用的后面这种方式。我只是用的windowserver发布的,应该支持跨平台的,因为它只是一个库

    回到顶部

    1、创建项目

    首先创建一个asp.net core 3.1的程序(mvc razorPages都行)

    回到顶部

    2、添加包引用

    然后添加nuget包 paket add McMaster.AspNetCore.LetsEncrypt --version 0.3.0

    回到顶部

    3、启动配置

    然后在Startup中配置

    1 using Microsoft.Extensions.DependencyInjection;
    2 
    3 public class Startup
    4 {
    5     public void ConfigureServices(IServiceCollection services)
    6     {
    7         services.AddLetsEncrypt();
    8     }
    9 }
    

    下面是配置文件

     1 // appsettings.json
     2 {
     3     "LetsEncrypt": {
     4         // Set this to automatically accept Let's Encrypt's terms of service.
     5         // If you don't set this in config, you will need to press "y" whenever the application starts
     6         "AcceptTermsOfService": true,
     7 
     8         // 申请证书要绑定的域名,阔以多个,不能写端口哦
     9         "DomainNames": [ "example.com", "www.example.com" ],
    10 
    11         // You must specify an email address to register with letsencrypt.org
    12         "EmailAddress": "it-admin@example.com"
    13     },
    14     "urls":"http://*;https://*"
    15 }
    

    回到顶部

    4、发布

    img

    根据你的方式选,我这里选择独立模式,发布后的程序里就自动包含了.net core运行时,所以包比较大,但是不需要服务器安装.net core,发布好的包放哪都能直接运行。
    目标运行时看着选,也可以发布层跨平台的通用包,详细的看官网吧。

    回到顶部

    5、运行

    img

    找到那个xxx.exe 直接启动就可以了,内部那个库会自动去申请证书并设置到Kestrel上,申请时会验证域名,我估计就是简单访问下这个域名看能不能正常访问,所以一定要保证你配置的域名都能正常访问。如果一切正常就可以通过https访问了。估计到期前会自动续签证书,得3个月后才能验证。

    回到顶部

    6、最后

    做个备忘,回头看这种方式真TM简单,引用库、配置、发布。文件夹复制到哪都能运行,还自带https。比如 做点微信小程序开发 美滋滋

  • 相关阅读:
    ACM: Copying Data 线段树-成段更新-解题报告
    POJ 2488 A Knight's Journey
    POJ 3349 Snowflake Snow Snowflakes Hash
    POJ 2299 Ultra-QuickSort 归并排序、二叉排序树,求逆序数
    POJ 1035 Spell checker 简单字符串匹配
    POJ 3267 The Cow Lexicon 简单DP
    POJ 1459 Power Network 最大流(Edmonds_Karp算法)
    POJ 3687 Labeling Balls 逆向建图,拓扑排序
    HDU 1532 Drainage Ditches 最大流 (Edmonds_Karp)
    POJ 3026 Borg Maze bfs+Kruskal
  • 原文地址:https://www.cnblogs.com/Study-Csharp/p/12651381.html
Copyright © 2011-2022 走看看