v3.0.1
http_certificate_pinning
Flutter용 HTTPS 인증서 핀닝. 알려진 SHA-1 또는 SHA-256 지문과 대상 서버의 SHA-1 또는 SHA-256이 동일한지 확인합니다.
157좋아요 4.1만30일 다운로드115Pub 점수
AndroidiOS
Flutter용 HTTPS 인증서 핀닝
>=4.0.6 <6.0.0{"sdk":"flutter"}^1.3.0^5.0.0{"sdk":"flutter"}아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
Https Certificate pinning for Flutter
This project is based on ssl_pinning_plugin
Any help is appreciated! Comment, suggestions, issues, PR's!
In your flutter or dart project add the dependency:
dependencies:
...
http_certificate_pinning: 3.0.1
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'
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");
}
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");
}
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;
}
}