FLUTTER ECOSYSTEM

diefferson/http_certificate_pinning

Flutter용 HTTPS 인증서 핀닝

http_certificate_pinning 프로젝트 이미지
Stars
103
Forks
110
최근 푸시(UTC)
2026. 7. 21.
프로젝트 상태
활성
Diefferson Santos GitHub avatar
GITHUB User

Diefferson Santos ↗

Mobile Engineer

@Noodle-CxBrasil
언어DartSwiftKotlinRubyObjective-C

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 5 개
  • dio>=4.0.6 <6.0.0
  • flutter{"sdk":"flutter"}
  • http^1.3.0
  • flutter_lints개발 의존성^5.0.0
  • flutter_test개발 의존성{"sdk":"flutter"}

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

Http Certificate Pinning

Https Certificate pinning for Flutter

This project is based on ssl_pinning_plugin

Any help is appreciated! Comment, suggestions, issues, PR's!

Getting Started

In your flutter or dart project add the dependency:

dependencies:
  ...
  http_certificate_pinning: 3.0.1

Get Certificate FingerPrint

To get SHA256 certificate fingerprint run in console:

openssl x509 -noout -fingerprint -sha256 -inform pem -in [certificate-file.crt]

The Result is like:

'59:58:57:5A:5B:5C:5D:59:58:57:5A:5B:5C:5D:59:58:57:5A:5B:5C:5D:59:58:57:5A:5B:5C:5D:59:58:57:5A:5B:5C:5D'

Usage example

Using Dio
import 'package:http_certificate_pinning/http_certificate_pinning.dart';
  
  // Add CertificatePinningInterceptor in dio Client
  Dio getClient(String baseUrl, List<String> allowedSHAFingerprints) {
      var dio = Dio(BaseOptions(baseUrl: baseUrl))
        ..interceptors.add(CertificatePinningInterceptor(allowedSHAFingerprints));
      return dio;
  }

  myRepositoryMethod() {
    dio.get("myurl.com");
  }
Using Http
import 'package:http_certificate_pinning/secure_http_client.dart';
  
  // Uses SecureHttpClient to make requests
  SecureHttpClient getClient(List<String> allowedSHAFingerprints) {
      final secureClient = SecureHttpClient.build(certificateSHA256Fingerprints);
      return secureClient;
  }

  myRepositoryMethod() {
    secureClient.get("myurl.com");
  }
Other Client
import 'package:http_certificate_pinning/http_certificate_pinning.dart';
  
Future myCustomImplementation(String url, Map<String,String> headers, List<String> allowedSHAFingerprints) async {
  try {
    final secure = await HttpCertificatePinning.check(
      serverURL: url,
      headerHttp: headers,
      sha: SHA.SHA256,
      allowedSHAFingerprints: allowedSHAFingerprints,
      timeout : 50
    );

    return secure.contains("CONNECTION_SECURE");
  } catch(e) {
    return false;
  }
}