Nội Dung Chính Trong Bài Viết

Tìm hiểu cách yêu cầu HTTPS / TLS trong ứng dụng web ASP.NET Core.

Bạn đang xem : cách buộc https

Bởi Rick Anderson

Tài liệu này hướng dẫn cách: < / p>

Không có API nào có thể ngăn khách hàng gửi dữ liệu nhạy cảm trong lần yêu cầu đầu tiên.

Cảnh báo

Dự án API

Không sử dụng RequestHttpsAttribute trên các API Web nhận thông tin nhạy cảm. RequestHttpsAttribute sử dụng mã trạng thái HTTP để chuyển hướng trình duyệt từ HTTP sang HTTPS. Ứng dụng khách API có thể không hiểu hoặc không tuân theo các chuyển hướng từ HTTP sang HTTPS. Các máy khách như vậy có thể gửi thông tin qua HTTP. API web phải:

  • Không nghe trên HTTP.
  • Đóng kết nối với mã trạng thái 400 (Yêu cầu không hợp lệ) và không gửi yêu cầu.

Để tắt chuyển hướng HTTP trong API, hãy đặt biến môi trường ASPNETCORE_URLS hoặc sử dụng cờ dòng lệnh --urls . Để biết thêm thông tin, hãy xem Sử dụng nhiều môi trường trong ASP.NET Core 5 cách đặt URL cho ứng dụng ASP.NET Core của Andrew Lock.

Dự án HSTS và API

Các dự án API mặc định không bao gồm HSTS HSTS thường là hướng dẫn chỉ dành cho trình duyệt. Những người gọi khác, chẳng hạn như ứng dụng điện thoại hoặc máy tính để bàn, không tuân theo hướng dẫn. Ngay cả trong các trình duyệt, một lệnh gọi được xác thực duy nhất tới một API qua HTTP cũng có rủi ro trên các mạng không an toàn. Phương pháp an toàn là định cấu hình các dự án API để chỉ lắng nghe và phản hồi qua HTTPS.

Chuyển hướng HTTP sang HTTPS gây ra ERR_INVALID_REDIRECT trong yêu cầu khởi hành trước CORS

Các yêu cầu tới điểm cuối sử dụng HTTP được chuyển hướng đến HTTPS bởi UseHttpsRedirection không thành công với ERR_INVALID_REDIRECT theo yêu cầu khởi hành trước CORS .

Các dự án API có thể từ chối yêu cầu HTTP thay vì sử dụng UseHttpsRedirection để chuyển hướng yêu cầu đến HTTPS.

Yêu cầu HTTPS

Chúng tôi khuyên bạn nên sử dụng các ứng dụng web ASP.NET Core sản xuất:

  • Phần mềm trung gian chuyển hướng HTTPS ( UseHttpsRedirection ) để chuyển hướng các yêu cầu HTTP đến HTTPS.
  • Phần mềm trung gian HSTS ( UseHsts ) để gửi các tiêu đề của Giao thức bảo mật truyền tải nghiêm ngặt HTTP (HSTS) cho khách hàng.

Lưu ý

Các ứng dụng được triển khai trong cấu hình proxy ngược cho phép proxy xử lý bảo mật kết nối (HTTPS). Nếu proxy cũng xử lý chuyển hướng HTTPS, thì không cần sử dụng Phần mềm trung gian chuyển hướng HTTPS. Nếu máy chủ proxy cũng xử lý việc ghi tiêu đề HSTS (ví dụ: hỗ trợ HSTS gốc trong IIS 10.0 (1709) trở lên ), thì ứng dụng không yêu cầu Phần mềm trung gian HSTS. Để biết thêm thông tin, hãy xem phần Chọn không tham gia HTTPS / HSTS khi tạo dự án .

UseHttpsRedirection

Đoạn mã sau gọi UseHttpsRedirection trong tệp Program.cs :

  var builder = WebApplication.CreateBuilder (args);

người xây dựng.Services.AddRazorPages ();

var app = builder.Build ();

if (! app.Enosystem.IsDevelopment ())
{
    app.UseExceptionHandler ("/ Lỗi");
    app.UseHsts ();
}

app.UseHttpsRedirection ();
app.UseStaticFiles ();

app.UseRouting ();

app.UseAuthorization ();

app.MapRazorPages ();

app.Run ();
 

Đoạn mã được đánh dấu trước:

  • Sử dụng HttpsRedirectionOptions.RedirectStatusCode mặc định ( Status307TemporaryRedirect ).
  • Sử dụng HttpsRedirectionOptions.HttpsPort (null) mặc định trừ khi bị biến môi trường ASPNETCORE_HTTPS_PORT hoặc IServerAddressesFeature .

Chúng tôi khuyên bạn nên sử dụng chuyển hướng tạm thời thay vì chuyển hướng vĩnh viễn. Bộ nhớ đệm liên kết có thể gây ra hành vi không ổn định trong môi trường phát triển. Nếu bạn muốn gửi mã trạng thái chuyển hướng vĩnh viễn khi ứng dụng ở trong môi trường không Phát triển, hãy xem phần Định cấu hình chuyển hướng vĩnh viễn trong sản xuất . Chúng tôi khuyên bạn nên sử dụng HSTS để báo hiệu với khách hàng rằng chỉ các yêu cầu tài nguyên an toàn mới được gửi đến ứng dụng (chỉ trong phiên bản sản xuất).

Cấu hình cổng

Phải có một cổng để phần mềm trung gian chuyển hướng một yêu cầu không an toàn đến HTTPS. Nếu không có cổng nào:

  • Không xảy ra chuyển hướng sang HTTPS.
  • Phần mềm trung gian ghi lại cảnh báo “Không xác định được cổng https để chuyển hướng.”

Chỉ định cổng HTTPS bằng bất kỳ phương pháp nào sau đây:

  • Đặt HttpsRedirectionOptions.HttpsPort .

  • Đặt https_port cài đặt máy chủ :

    • Trong cấu hình máy chủ.

    • Bằng cách đặt biến môi trường ASPNETCORE_HTTPS_PORT .

    • Bằng cách thêm một mục nhập cấp cao nhất trong appsettings.json :

        {
        "https_port": 443,
        "Ghi nhật ký": {
          "Mức đăng nhập": {
            "Mặc định": "Thông tin",
            "Microsoft.AspNetCore": "Cảnh báo"
          }
        },
        "AllowedHosts": "*"
      }
       
  • Chỉ ra một cổng có sơ đồ bảo mật bằng cách sử dụng biến môi trường ASPNETCORE_URLS . Biến môi trường cấu hình máy chủ. Phần mềm trung gian gián tiếp phát hiện ra cổng HTTPS thông qua IServerAddressesFeature . Cách tiếp cận này không hoạt động khi triển khai proxy ngược.

  • Các mẫu web ASP.NET Core đặt một URL HTTPS trong Properties / launcsettings.json cho cả Kestrel và IIS Express. launcsettings.json chỉ được sử dụng trên máy cục bộ.

  • Định cấu hình điểm cuối URL HTTPS để triển khai công khai máy chủ Kestrel hoặc máy chủ HTTP.sys . Ứng dụng chỉ sử dụng một cổng HTTPS . Phần mềm trung gian phát hiện ra cổng qua IServerAddressesFeature .

XEM THÊM  Cách tạo trang đích Elementor trên WordPress (7 bước) - trang đích của phần tử wordpress

Lưu ý

Khi một ứng dụng được chạy trong cấu hình proxy ngược, IServerAddressesFeature sẽ không khả dụng. Đặt cổng bằng một trong các cách tiếp cận khác được mô tả trong phần này.

Các triển khai Edge

Khi Kestrel hoặc HTTP.sys được sử dụng làm máy chủ biên công khai, Kestrel hoặc HTTP.sys phải được định cấu hình để nghe trên cả hai:

  • Cổng an toàn nơi máy khách được chuyển hướng (thường là 443 đang sản xuất và 5001 đang phát triển).
  • Cổng không an toàn (thông thường, 80 đang sản xuất và 5000 đang phát triển).

Ứng dụng phải truy cập được cổng không an toàn để ứng dụng nhận được yêu cầu không an toàn và chuyển hướng khách đến cổng an toàn.

Để biết thêm thông tin, hãy xem cấu hình điểm cuối Kestrel hoặc triển khai máy chủ web HTTP.sys trong ASP.NET Core .

Các tình huống triển khai

Bất kỳ tường lửa nào giữa máy khách và máy chủ cũng phải có cổng giao tiếp mở cho lưu lượng truy cập.

Nếu các yêu cầu được chuyển tiếp trong cấu hình proxy ngược, hãy sử dụng Phần mềm trung gian tiêu đề được chuyển tiếp trước khi gọi Phần mềm trung gian chuyển hướng HTTPS. Phần mềm trung gian phần mềm được chuyển tiếp tiêu đề cập nhật Request.Scheme , sử dụng tiêu đề X-Forwarded-Proto . Phần mềm trung gian cho phép các URI chuyển hướng và các chính sách bảo mật khác hoạt động chính xác. Khi Phần mềm trung gian của Header Forwarded không được sử dụng, ứng dụng phụ trợ có thể không nhận được sơ đồ chính xác và kết thúc trong một vòng lặp chuyển hướng. Thông báo lỗi phổ biến của người dùng cuối là quá nhiều chuyển hướng đã xảy ra.

Khi triển khai Dịch vụ ứng dụng Azure, hãy làm theo hướng dẫn trong Hướng dẫn: Liên kết chứng chỉ SSL tùy chỉnh hiện có với Ứng dụng web Azure .

Tùy chọn

Đoạn mã được đánh dấu sau đây gọi AddHttpsRedirection để định cấu hình các tùy chọn phần mềm trung gian:

  using System.Net;

var builder = WebApplication.CreateBuilder (args);

người xây dựng.Services.AddRazorPages ();

builder.Services.AddHsts (tùy chọn = & gt;
{
    tùy chọn.Preload = true;
    tùy chọn.IncludeSubDomains = true;
    tùy chọn.MaxAge = TimeSpan.FromDays (60);
    options.ExcludedHosts.Add ("example.com");
    options.ExcludedHosts.Add ("www.example.com");
});

builder.Services.AddHttpsRedirection (tùy chọn = & gt;
{
    options.RedirectStatusCode = (int) HttpStatusCode.TemporaryRedirect;
    tùy chọn.HttpsPort = 5001;
});

var app = builder.Build ();

if (! app.Enosystem.IsDevelopment ())
{
    app.UseExceptionHandler ("/ Lỗi");
    app.UseHsts ();
}

app.UseHttpsRedirection ();
app.UseStaticFiles ();

app.UseRouting ();

app.UseAuthorization ();

app.MapRazorPages ();

app.Run ();
 

Việc gọi AddHttpsRedirection chỉ cần thiết để thay đổi các giá trị của HttpsPort hoặc RedirectStatusCode .

Đoạn mã được đánh dấu trước:

  • Đặt HttpsRedirectionOptions.RedirectStatusCode thành Status307TemporaryRedirect , là giá trị mặc định. Sử dụng các trường của lớp StatusCodes để gán cho RedirectStatusCode .
  • Đặt cổng HTTPS thành 5001.

Định cấu hình chuyển hướng vĩnh viễn trong sản xuất

Phần mềm trung gian mặc định gửi Status307TemporaryRedirect với tất cả các chuyển hướng. Nếu bạn muốn gửi mã trạng thái chuyển hướng vĩnh viễn khi ứng dụng ở trong môi trường không Phát triển, hãy bọc cấu hình tùy chọn phần mềm trung gian trong một kiểm tra có điều kiện cho môi trường không phải Phát triển.

Khi định cấu hình các dịch vụ trong Program.cs :

  using System.Net;

var builder = WebApplication.CreateBuilder (args);

người xây dựng.Services.AddRazorPages ();

if (! builder.Enosystem.IsDevelopment ())
{
    builder.Services.AddHttpsRedirection (tùy chọn = & gt;
    {
        options.RedirectStatusCode = (int) HttpStatusCode.PermanentRedirect;
        tùy chọn.HttpsPort = 443;
    });
}

var app = builder.Build ();

if (! app.Enosystem.IsDevelopment ())
{
    app.UseExceptionHandler ("/ Lỗi");

    app.UseHsts ();
}

app.UseHttpsRedirection ();
app.UseStaticFiles ();

app.UseRouting ();

app.UseAuthorization ();

app.MapRazorPages ();

app.Run ();
 

Phương pháp thay thế phần mềm trung gian chuyển hướng HTTPS

Một giải pháp thay thế cho việc sử dụng Phần mềm trung gian chuyển hướng HTTPS ( UseHttpsRedirection ) là sử dụng Phần mềm trung gian viết lại URL ( AddRedirectToHttps ). AddRedirectToHttps cũng có thể đặt mã trạng thái và cổng khi chuyển hướng được thực thi. Để biết thêm thông tin, hãy xem Phần mềm trung gian viết lại URL .

Khi chuyển hướng đến HTTPS mà không có yêu cầu về quy tắc chuyển hướng bổ sung, chúng tôi khuyên bạn nên sử dụng Phần mềm trung gian chuyển hướng HTTPS ( UseHttpsRedirection ) được mô tả trong chủ đề này.

Giao thức Bảo mật Truyền tải Nghiêm ngặt HTTP (HSTS)

Theo OWASP , Bảo mật truyền tải nghiêm ngặt HTTP (HSTS) là một cải tiến bảo mật chọn tham gia được ứng dụng web chỉ định thông qua việc sử dụng tiêu đề phản hồi. Khi trình duyệt hỗ trợ HSTS nhận được tiêu đề này:

  • Trình duyệt lưu trữ cấu hình cho miền ngăn việc gửi bất kỳ thông tin liên lạc nào qua HTTP. Trình duyệt buộc tất cả giao tiếp qua HTTPS.
  • Trình duyệt ngăn người dùng sử dụng các chứng chỉ không đáng tin cậy hoặc không hợp lệ. Trình duyệt vô hiệu hóa các lời nhắc cho phép người dùng tạm thời tin cậy một chứng chỉ như vậy.

HSTS do khách hàng thực thi nên nó có một số hạn chế:

  • Khách hàng phải hỗ trợ HSTS.
  • HSTS yêu cầu ít nhất một yêu cầu HTTPS thành công để thiết lập chính sách HSTS.
  • Ứng dụng phải kiểm tra mọi yêu cầu HTTP và chuyển hướng hoặc từ chối yêu cầu HTTP.

ASP.NET Core triển khai HSTS với phương thức mở rộng UseHsts . Đoạn mã sau gọi UseHsts khi ứng dụng không ở chế độ phát triển :

  var builder = WebApplication.CreateBuilder (args);

người xây dựng.Services.AddRazorPages ();

var app = builder.Build ();

if (! app.Enosystem.IsDevelopment ())
{
    app.UseExceptionHandler ("/ Lỗi");
    app.UseHsts ();
}

app.UseHttpsRedirection ();
app.UseStaticFiles ();

app.UseRouting ();

app.UseAuthorization ();

app.MapRazorPages ();

app.Run ();
 

UseHsts không được khuyến nghị trong quá trình phát triển vì cài đặt HSTS có khả năng lưu vào bộ nhớ cache cao bởi các trình duyệt. Theo mặc định, UseHsts loại trừ địa chỉ lặp lại cục bộ.

Đối với môi trường sản xuất đang triển khai HTTPS lần đầu tiên, hãy đặt HstsOptions.MaxAge ban đầu thành một giá trị nhỏ bằng cách sử dụng một trong các TimeSpan . Đặt giá trị từ giờ thành không quá một ngày trong trường hợp bạn cần hoàn nguyên cơ sở hạ tầng HTTPS về HTTP. Sau khi bạn tin tưởng vào tính bền vững của cấu hình HTTPS, hãy tăng giá trị HSTS max-age ; giá trị thường được sử dụng là một năm.

Đoạn mã được đánh dấu sau:

  using System.Net;

var builder = WebApplication.CreateBuilder (args);

người xây dựng.Services.AddRazorPages ();

builder.Services.AddHsts (tùy chọn = & gt;
{
    tùy chọn.Preload = true;
    tùy chọn.IncludeSubDomains = true;
    tùy chọn.MaxAge = TimeSpan.FromDays (60);
    options.ExcludedHosts.Add ("example.com");
    options.ExcludedHosts.Add ("www.example.com");
});

builder.Services.AddHttpsRedirection (tùy chọn = & gt;
{
    options.RedirectStatusCode = (int) HttpStatusCode.TemporaryRedirect;
    tùy chọn.HttpsPort = 5001;
});

var app = builder.Build ();

if (! app.Enosystem.IsDevelopment ())
{
    app.UseExceptionHandler ("/ Lỗi");
    app.UseHsts ();
}

app.UseHttpsRedirection ();
app.UseStaticFiles ();

app.UseRouting ();

app.UseAuthorization ();

app.MapRazorPages ();

app.Run ();
 
  • Đặt thông số tải trước của tiêu đề Nghiêm ngặt-Truyền tải-Bảo mật . Tải trước không phải là một phần của đặc tả HSTS của RFC, nhưng được trình duyệt web hỗ trợ để tải trước các trang web HSTS khi cài đặt mới. Để biết thêm thông tin, hãy xem https://hstspreload.org/ .
  • Bật includeSubDomain , áp dụng chính sách HSTS cho các miền phụ của Máy chủ.
  • Đặt rõ ràng thông số max-age của tiêu đề Nghiêm ngặt-Vận chuyển-Bảo mật thành 60 ngày. Nếu không được đặt, mặc định là 30 ngày. Để biết thêm thông tin, hãy xem chỉ thị về độ tuổi tối đa .
  • Thêm example.com vào danh sách các máy chủ cần loại trừ.

UseHsts loại trừ các máy chủ lặp lại sau:

  • localhost : Địa chỉ lặp lại IPv4.
  • 127.0.0.1 : Địa chỉ lặp lại IPv4.
  • [:: 1] : Địa chỉ lặp lại IPv6.

Chọn không tham gia HTTPS / HSTS khi tạo dự án

Trong một số tình huống dịch vụ phụ trợ trong đó bảo mật kết nối được xử lý ở biên đối diện công khai của mạng, không bắt buộc phải định cấu hình bảo mật kết nối tại mỗi nút. Các ứng dụng web được tạo từ các mẫu trong Visual Studio hoặc từ lệnh dotnet new cho phép chuyển hướng HTTPS HSTS . Đối với các triển khai không yêu cầu các tình huống này, bạn có thể chọn không tham gia HTTPS / HSTS khi ứng dụng được tạo từ mẫu.

XEM THÊM  Cách thêm thư viện hình ảnh và video WordPress trong Trình tạo trang WPBakery - cách thêm video vào trình tạo trang wpbakery

Để chọn không tham gia HTTPS / HSTS:

  • Visual Studio
  • . NET Core CLI

Bỏ chọn hộp kiểm Định cấu hình cho HTTPS .

Sử dụng tùy chọn --no-https . Ví dụ

  dotnet ứng dụng web mới --no-https
 

Tin cậy chứng chỉ phát triển ASP.NET Core HTTPS trên Windows và macOS

Đối với trình duyệt Firefox, hãy xem phần tiếp theo.

.NET Core SDK bao gồm chứng chỉ phát triển HTTPS. Chứng chỉ được cài đặt như một phần của trải nghiệm lần đầu tiên. Ví dụ: dotnet --info tạo ra một biến thể của kết quả sau:

  ASP.NET Core
------------
Đã cài đặt thành công Chứng chỉ phát triển HTTPS cốt lõi ASP.NET.
Để tin cậy chứng chỉ, hãy chạy 'dotnet dev-certs https --trust' (chỉ dành cho Windows và macOS).
Để thiết lập lòng tin trên các nền tảng khác, hãy tham khảo tài liệu dành riêng cho nền tảng.
Để biết thêm thông tin về cách định cấu hình HTTPS, hãy xem https://go.microsoft.com/fwlink/?linkid=848054.
 

Cài đặt .NET Core SDK sẽ cài đặt chứng chỉ phát triển ASP.NET Core HTTPS vào kho lưu trữ chứng chỉ người dùng cục bộ. Chứng chỉ đã được cài đặt, nhưng nó không đáng tin cậy. Để tin cậy chứng chỉ, hãy thực hiện bước một lần để chạy công cụ dotnet dev-certs :

  dotnet dev-certs https --trust
 

Lệnh sau cung cấp trợ giúp về công cụ dev-certs :

  dotnet dev-certs https --help
 

Cảnh báo

Không tạo chứng chỉ phát triển trong môi trường sẽ được phân phối lại, chẳng hạn như hình ảnh vùng chứa hoặc máy ảo. Làm như vậy có thể dẫn đến giả mạo và nâng cao đặc quyền. Để giúp ngăn chặn điều này, hãy đặt biến môi trường DOTNET_GENERATE_ASPNET_CERTIFICATE thành false trước khi gọi .NET CLI lần đầu tiên. Thao tác này sẽ bỏ qua quá trình tạo tự động chứng chỉ phát triển ASP.NET Core trong quá trình trải nghiệm lần đầu tiên của CLI.

Tin cậy chứng chỉ HTTPS với Firefox để ngăn chặn lỗi SEC_ERROR_INADEQUATE_KEY_USAGE

Trình duyệt Firefox sử dụng kho lưu trữ chứng chỉ của riêng nó và do đó không tin tưởng vào chứng chỉ nhà phát triển IIS Express hoặc Kestrel .

Có hai cách tiếp cận để tin cậy chứng chỉ HTTPS với Firefox, tạo tệp chính sách hoặc định cấu hình bằng trình duyệt FireFox. Việc định cấu hình bằng trình duyệt sẽ tạo ra tệp chính sách, vì vậy hai cách tiếp cận là tương đương nhau.

Tạo tệp chính sách để tin cậy chứng chỉ HTTPS với Firefox

Tạo tệp chính sách tại:

  • Windows: % PROGRAMFILES% \ Mozilla Firefox \ phân phối \ chính sách.json
  • MacOS: Firefox.app/Contents/Resources/distribution
  • Linux: Xem phần Tin cậy chứng chỉ với Firefox trên Linux trong tài liệu này.

Thêm JSON sau vào tệp chính sách của Firefox:

  {
  "chính sách": {
    "Chứng chỉ": {
      "ImportEnterpriseRoots": true
    }
  }
}
 

Tệp chính sách trước đó tạo chứng chỉ tin cậy cho Firefox từ các chứng chỉ đáng tin cậy trong kho chứng chỉ Windows. Phần tiếp theo cung cấp một cách tiếp cận thay thế để tạo tệp chính sách trước bằng cách sử dụng trình duyệt Firefox.

Định cấu hình độ tin cậy của chứng chỉ HTTPS bằng trình duyệt Firefox

Đặt security.enterprise_osystem.enabled = true bằng cách sử dụng các hướng dẫn sau:

  1. Nhập about: config vào trình duyệt FireFox.
  2. Chọn Chấp nhận rủi ro và tiếp tục nếu bạn chấp nhận rủi ro.
  3. Chọn Hiển thị tất cả
  4. Đặt security.enterprise_osystem.enabled = true
  5. Thoát và khởi động lại Firefox

Để biết thêm thông tin, hãy xem Thiết lập Tổ chức phát hành chứng chỉ (CA) trong Firefox và tệp mozilla / policy-templates / README .

Cách thiết lập chứng chỉ nhà phát triển cho Docker

Xem sự cố GitHub này .

Tin cậy chứng chỉ HTTPS trên Linux

Thiết lập lòng tin là phân phối và trình duyệt cụ thể. Các phần sau cung cấp hướng dẫn về một số bản phân phối phổ biến và trình duyệt Chromium (Edge và Chrome) cũng như cho Firefox.

Ubuntu tin cậy chứng chỉ cho giao tiếp dịch vụ với dịch vụ

  1. Cài đặt OpenSSL 1.1.1 giờ trở lên. Xem bản phân phối của bạn để biết hướng dẫn về cách cập nhật OpenSSL.

  2. Chạy các lệnh sau:

      dotnet dev-certs https
    sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt - định dạng PEM
    sudo update-ca-certificate
     

Các lệnh trước:

  • Đảm bảo rằng chứng chỉ nhà phát triển của người dùng hiện tại đã được tạo.
  • Xuất chứng chỉ với các quyền nâng cao cần thiết cho thư mục ca-certificate , sử dụng môi trường của người dùng hiện tại.
  • Xóa cờ -E sẽ xuất chứng chỉ người dùng gốc, tạo chứng chỉ này nếu cần. Mỗi chứng chỉ mới được tạo có một dấu vân tay khác nhau. Khi chạy dưới quyền root, sudo -E không cần thiết.

Đường dẫn trong lệnh trước dành riêng cho Ubuntu. Đối với các bản phân phối khác, hãy chọn một đường dẫn thích hợp hoặc sử dụng đường dẫn cho Tổ chức phát hành chứng chỉ (CA).

Tin cậy chứng chỉ HTTPS trên Linux bằng Edge hoặc Chrome

Đối với trình duyệt crôm trên Linux:

  • Cài đặt libnss3-tools cho bản phân phối của bạn.

  • Tạo hoặc xác minh thư mục $ HOME / .pki / nssdb tồn tại trên máy.

  • Xuất chứng chỉ bằng lệnh sau:

      dotnet dev-certs https
    sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt - định dạng PEM
     

    Đường dẫn trong lệnh trước dành riêng cho Ubuntu. Đối với các bản phân phối khác, hãy chọn một đường dẫn thích hợp hoặc sử dụng đường dẫn cho Tổ chức phát hành chứng chỉ (CA).

  • Chạy các lệnh sau:

      certutil -d sql: $ HOME / .pki / nssdb -A -t "P ,," -n localhost -i / usr / local / share / ca-Certificates / aspnet / https.crt
    certutil -d sql: $ HOME / .pki / nssdb -A -t "C ,," -n localhost -i /usr/local/share/ca-certificates/aspnet/https.crt
     
  • Thoát và khởi động lại trình duyệt.

Tin cậy chứng chỉ với Firefox trên Linux

  • Xuất chứng chỉ bằng lệnh sau:

      dotnet dev-certs https
    sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt - định dạng PEM
     

    Đường dẫn trong lệnh trước dành riêng cho Ubuntu. Đối với các bản phân phối khác, hãy chọn một đường dẫn thích hợp hoặc sử dụng đường dẫn cho Tổ chức phát hành chứng chỉ (CA).

  • Tạo tệp JSON tại /usr/lib/firefox/distribution/policies.json với nội dung sau:

  mèo & lt; & lt; EOF | sudo tee /usr/lib/firefox/distribution/policies.json
{
    "chính sách": {
        "Chứng chỉ": {
            "Cài đặt": [
                "/usr/local/share/ca-certificates/aspnet/https.crt"
            ]
        }
    }
}
EOF
 

Xem phần Định cấu hình độ tin cậy của chứng chỉ HTTPS bằng trình duyệt Firefox trong tài liệu này để biết cách thay thế để định cấu hình tệp chính sách bằng trình duyệt.

Tin cậy chứng chỉ với Fedora 34

Xem nhận xét này trên GitHub .

Tin cậy chứng chỉ với các bản phân phối khác

Xem sự cố GitHub này .

Tin cậy chứng chỉ HTTPS từ Hệ thống con Windows dành cho Linux

Hệ thống con của Windows dành cho Linux (WSL) tạo chứng chỉ phát triển HTTPS tự ký. Để định cấu hình kho lưu trữ chứng chỉ Windows để tin cậy chứng chỉ WSL:

  • Xuất chứng chỉ nhà phát triển sang tệp trên Windows :

      dotnet dev-certs https -ep https.pfx -p $ CREDENTIAL_PLACEHOLDER $ --trust
     

    Trong đó $ CREDENTIAL_PLACEHOLDER $ là mật khẩu.

  • Trong cửa sổ WSL, hãy nhập chứng chỉ đã xuất trên phiên bản WSL:

      dotnet dev-certs https --clean --import & lt; & lt; path-to-pfx & gt; & gt; - mật khẩu $ CREDENTIAL_PLACEHOLDER $
     

Cách tiếp cận trước là hoạt động một lần cho mỗi chứng chỉ và mỗi phân phối WSL. Nó dễ dàng hơn việc xuất đi xuất lại chứng chỉ. Nếu cập nhật hoặc tạo lại chứng chỉ trên windows, bạn có thể phải chạy lại các lệnh trước đó.

XEM THÊM  Dịch WordPress với GTranslate - dịch wordpress với gtranslate

Khắc phục sự cố chứng chỉ chẳng hạn như chứng chỉ không đáng tin cậy

Phần này cung cấp trợ giúp khi chứng chỉ phát triển ASP.NET Core HTTPS đã được cài đặt và đáng tin cậy , nhưng bạn vẫn gặp cảnh báo của trình duyệt rằng chứng chỉ không đáng tin cậy. Chứng chỉ phát triển ASP.NET Core HTTPS được Kestrel sử dụng.

Để sửa chứng chỉ IIS Express, hãy xem sự cố Stackoverflow này .

Tất cả các nền tảng – chứng chỉ không đáng tin cậy

Chạy các lệnh sau:

  dotnet dev-certs https --clean
dotnet dev-certs https --trust
 

Đóng mọi phiên bản trình duyệt đang mở. Mở một cửa sổ trình duyệt mới cho ứng dụng. Tin cậy chứng chỉ được trình duyệt lưu vào bộ nhớ đệm.

dotnet dev-certs https –clean Fails

Các lệnh trước giải quyết hầu hết các vấn đề về độ tin cậy của trình duyệt. Nếu trình duyệt vẫn không tin tưởng vào chứng chỉ, hãy làm theo các đề xuất dành riêng cho nền tảng sau đó.

Docker – chứng chỉ không đáng tin cậy

  • Xóa thư mục C: \ Users {USER} \ AppData \ Roaming \ ASP.NET \ Https.
  • Làm sạch dung dịch. Xóa các thư mục bin và obj.
  • Khởi động lại công cụ phát triển. Ví dụ: Visual Studio, Visual Studio Code hoặc Visual Studio cho Mac.

Windows – chứng chỉ không đáng tin cậy

  • Kiểm tra các chứng chỉ trong kho chứng chỉ. Phải có chứng chỉ localhost với tên thân thiện ASP.NET Core HTTPS phát triển HTTPS cả dưới Người dùng hiện tại & gt; Cá nhân & gt; Chứng chỉ Người dùng hiện tại & gt; Cơ quan cấp chứng chỉ gốc đáng tin cậy & gt; Chứng chỉ
  • Xóa tất cả các chứng chỉ được tìm thấy khỏi cả tổ chức cấp chứng chỉ gốc Cá nhân và Đáng tin cậy. Không xóa chứng chỉ máy chủ cục bộ IIS Express.
  • Chạy các lệnh sau:
  dotnet dev-certs https --clean
dotnet dev-certs https --trust
 

Đóng mọi phiên bản trình duyệt đang mở. Mở một cửa sổ trình duyệt mới cho ứng dụng.

OS X – chứng chỉ không đáng tin cậy

  • Mở quyền truy cập KeyChain.
  • Chọn chuỗi khóa Hệ thống.
  • Kiểm tra sự hiện diện của chứng chỉ máy chủ cục bộ.
  • Kiểm tra xem nó có chứa ký hiệu + trên biểu tượng hay không để cho biết nó đáng tin cậy đối với tất cả người dùng.
  • Xóa chứng chỉ khỏi chuỗi khóa hệ thống.
  • Chạy các lệnh sau:
  dotnet dev-certs https --clean
dotnet dev-certs https --trust
 

Đóng mọi phiên bản trình duyệt đang mở. Mở một cửa sổ trình duyệt mới cho ứng dụng.

Xem Lỗi HTTPS khi sử dụng IIS Express (dotnet / AspNetCore # 16892) để khắc phục sự cố chứng chỉ với Visual Studio.

Chứng chỉ Linux không đáng tin cậy

Kiểm tra xem chứng chỉ đang được định cấu hình để tin cậy có phải là chứng chỉ nhà phát triển HTTPS của người dùng sẽ được máy chủ Kestrel sử dụng hay không.

Kiểm tra chứng chỉ Kestrel dành cho nhà phát triển HTTPS mặc định của người dùng hiện tại tại vị trí sau:

  ls -la ~ / .dotnet / corefx / cryptography / x509stores / my
 

Tệp chứng chỉ Kestrel dành cho nhà phát triển HTTPS là tệp SHA1. Khi tệp bị xóa qua dotnet dev-certs https --clean, nó được tạo lại khi cần thiết với một dấu vân tay khác.
Kiểm tra dấu vân tay của chứng chỉ đã xuất khớp với lệnh sau:

  openssl x509 -noout -fingerprint -sha1 -inform pem -in /usr/local/share/ca-certificates/aspnet/https.crt
 

Nếu chứng chỉ không khớp, chứng chỉ đó có thể là một trong những chứng chỉ sau:

  • Chứng chỉ cũ.
  • Chứng chỉ nhà phát triển đã xuất cho người dùng gốc. Đối với trường hợp này, hãy xuất chứng chỉ.

Có thể kiểm tra chứng chỉ người dùng gốc tại:

  ls -la /root/.dotnet/corefx/cryptography/x509stores/my
 

Chứng chỉ SSL IIS Express được sử dụng với Visual Studio

Để khắc phục sự cố với chứng chỉ IIS Express, hãy chọn Sửa chữa từ trình cài đặt Visual Studio. Để biết thêm thông tin, hãy xem sự cố GitHub này .

Chính sách nhóm ngăn không cho các chứng chỉ tự ký được tin cậy

Trong một số trường hợp, chính sách nhóm có thể ngăn chứng chỉ tự ký được tin cậy. Để biết thêm thông tin, hãy xem sự cố GitHub này .

Thông tin bổ sung


Xem thêm những thông tin liên quan đến chủ đề làm thế nào để buộc https

Hướng dẫn cách copy nhiều lần và tùy chọn paste 1 lần với Clipboard trên Windows 10 và Windows 11

  • Tác giả: Hải Nam Tech
  • Ngày đăng: 2022-06-23
  • Đánh giá: 4 ⭐ ( 3925 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn cách copy nhiều lần và tùy chọn paste 1 lần với tính năng Clipboard history trên Windows 10 và Windows 11:
    1. BẬT CHỨC NĂNG CLIPBOARD HISTORY
    – Vào Settings / System / Clipboard / Clipboard History bật On
    – Hoặc có thể mở Microsoft Word rồi bấm Windows + V rồi chọn Turn On cũng được
    2. SỬ DỤNG CLIPBOARD
    – Copy (sao chép) nội dung ở nhiều nơi khác nhau
    – Mở nơi cần Paste (dán) (Ví dụ Word), bấm phím Windows + V
    – Chọn các nội dung đã sao chép trong Clipboard để đưa vô Microsoft Word
    – Sau khi hoàn thành có thể nhấn Clear all để xóa bỏ các nội dung đã sao chép
    ———-
    Hashtags: hainamtech clipboard clipboardhistory
    Nếu bạn thấy video hữu ích, bạn có thể giúp (ủng hộ) mình bằng cách sau:
    – Đăng ký kênh
    – Like video
    – Chia sẻ video
    Cảm ơn các bạn.

Cách buộc tóc đẹp 2019: 20+ kiểu dễ nhớ, dễ làm, hiếm khi thất bại

  • Tác giả: yeutre.vn
  • Đánh giá: 3 ⭐ ( 1688 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cách buộc tóc đẹp đơn giản, mang đến sự trẻ trung, thanh lịch nhưng lại không được phái đẹp ưu ái. Bởi chị em cho rằng buộc tóc tuy tiện lợi nhưng lại đơn điệu và nhàm chán. Suy nghĩ ấy xuất

Điều Kiện Mở Thẻ Tín Dụng 2022 & Cách Đăng Ký Làm Thẻ Online

  • Tác giả: timo.vn
  • Đánh giá: 4 ⭐ ( 9119 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Điều kiện mở thẻ tín dụng mới nhất 2022. Đăng ký thẻ tín dụng online – có thể? Cách làm thẻ tín dụng Vietcombank, BIDV, ACB, VIB, Timo…!

HTTPS và TLS/SSL là gì? Giải thích về tầm quan trọng của một website an toàn

  • Tác giả: www.hostinger.vn
  • Đánh giá: 4 ⭐ ( 3706 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đọc bài hướng dẫn của chúng tôi để tìm hiểu SSL là gì, HTTPS là gì. Khám phá công nghệ này hoạt động như thế nào và sức ảnh hưởng của nó đến website và khách truy cập. Còn có các bước thiết lập nhanh SSL.

Làm thế nào để cài đặt SSL và HTTPS cho WordPress?

  • Tác giả: wpcanban.com
  • Đánh giá: 5 ⭐ ( 7244 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: HTTPS là gì? Khi nào thì bạn nên sử dụng giao thức HTTPS? Hướng dẫn chi tiết cách cài đặt SSL và HTTPS cho blog WordPress.

Làm thế nào để buộc cập nhật Windows 10?

  • Tác giả: frameboxxindore.com
  • Đánh giá: 3 ⭐ ( 7117 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Làm thế nào để buộc giày chạy bộ của bạn?

  • Tác giả: happyrun.vn
  • Đánh giá: 5 ⭐ ( 8302 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 4Runners – Một thế giới nhỏ dành cho Runners

Xem thêm các bài viết khác thuộc chuyên mục: WordPress

By DEVTEAM