1. 程式人生 > >https 通過Fiddler代理訪問 (一)

https 通過Fiddler代理訪問 (一)

在 https demo的基礎上新增程式碼

		System.setProperty("https.proxyHost", "127.0.0.1");
		System.setProperty("https.proxyPort", "8888");

檢驗伺服器端證書相關的程式碼

	public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
			try {
				pkixTrustManager.checkServerTrusted(chain, authType);
			} catch (CertificateException e) {
				e.printStackTrace();
			}
		}


chain[0]的資訊如下

[[
[
  Version: V3
  Subject: CN=192.168.1.100, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 24947351780810750149457192342624891094010340826566576952405861651562219499162480072742194129566797520741499176032489646316170314955835686646980297758424985554421943435601176370704615459227197142976029945830796314782808168867122283837438799297051330390738395916999777595862184321998752239481037639477824388751868106166359017794514693196099598252592968561371591176844590654131704730811194193636860112321674716596633253287199014920205230667327198840802362660975939107706467998611424982214405584353521096452464329878819175737107584601577502327373070485795864908400431388188336555021702892277221877718950834967106784349929
  public exponent: 65537
  Validity: [From: Sat Jan 02 03:08:02 CST 2016,
               To: Sat Jan 01 03:08:02 CST 2022]
  Issuer: CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com
  SerialNumber: [    71f73d1a 3f9f1894 4e82d394 4a917ff1]

Certificate Extensions: 5
[1]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 5B CA 9D 06 12 F3 37 D9   BA 1B 01 26 A3 18 18 7E  [.....7....&....
0010: 30 BA EE 24                                        0..$
]
]

[2]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  serverAuth
]

[3]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_Encipherment
  Data_Encipherment
]

[4]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  IPAddress: 192.168.1.100
]

[5]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B5 D1 82 42 85 9B D4 42   CD EA BF 18 69 0A 1C 73  ...B...B....i..s
0010: 47 8B 49 DA                                        G.I.
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: A0 C1 ED 28 73 DE A0 69   AA D0 BF 79 E4 0F B3 1A  ...(s..i...y....
0010: 5C 57 CF 97 DC 30 C0 0E   16 B8 74 CA 41 AD 7A 01  \W...0....t.A.z.
0020: E1 4E 68 91 91 11 9C 92   F5 49 3F 44 37 0A 07 D0  .Nh......I?D7...
0030: 7C 4D D4 5F D1 27 2E B4   3B D3 00 87 7F 65 63 74  .M._.'..;....ect
0040: B3 FF 5B C1 1E 40 E8 8C   EC F7 18 9C D9 A4 EE 1D  ..[
[email protected]
0050: 78 97 A6 91 43 13 BF 9A 84 62 A2 46 98 3D 90 94 x...C....b.F.=.. 0060: BB 2F 23 CB 11 54 F2 9D D1 BE 69 F0 72 24 1C 50 ./#..T....i.r$.P 0070: 10 20 93 72 DD D2 59 F2 C5 A1 9B D5 42 8A F3 D8 . .r..Y.....B... 0080: 85 CE 71 13 C3 61 83 42 45 18 C9 D5 8A 4F 78 A5 ..q..a.BE....Ox. 0090: C5 93 5D BD 2C 18 16 3C 5A 75 96 91 81 9C 81 48 ..].,..<Zu.....H 00A0: 3E 1B E6 40 BD 6E B4 76 12 20 8B C9 EA E1 F4 6B >
[email protected]
.....k 00B0: DF 09 1B 1A 3C 41 92 95 C7 7C D9 A0 6F 66 82 FC ....<A......of.. 00C0: 15 B7 86 87 12 79 0D 5E 00 E1 79 19 E8 F3 00 DE .....y.^..y..... 00D0: F0 3B CC 33 87 6B 90 0D 83 17 44 D5 F2 AA 27 84 .;.3.k....D...'. 00E0: A4 8B 3E D2 82 94 30 F9 F1 48 34 DF EF 86 80 19 ..>...0..H4..... 00F0: CE 60 E5 90 18 BF 27 89 12 C1 73 BE E0 EE 1F 44 .`....'...s....D ]]

丟擲的異常如下
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
	at sun.security.validator.Validator.validate(Validator.java:260)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:107)
	at snippet.Snippet$MyX509TrustManager.checkServerTrusted(Snippet.java:148)
	at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:885)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1428)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:901)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:837)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
	at snippet.Snippet.main(Snippet.java:196)
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
	... 19 more

++++++++++++++++++++++++++++++

如果不新增https代理。正常的程式碼如下

[[
[
  Version: V3
  Subject: CN="-ext SAN=ip:192.168.1.100", OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 19333808039341154625810790785874090947269855923008040538783203063297653033601807923562956665877704976615669136669451152516548535892484604460563724278887211575569698709165086915180422889771945836803494387439803868975998823470426078007507998207103399962149708434488014409531365388401629461983027120621498531578456741642838051788524326497809907152869797913297121290535134240524838591272592591578064855083249896298421002250782901899648458227427573523854859199623626731011046424306152844529140691633936021943355314424155910484173547079997122993623626754543506876601363112385269336285947504059518887220373429193494969921711
  public exponent: 65537
  Validity: [From: Sun Jan 01 20:08:53 CST 2017,
               To: Sat Apr 01 20:08:53 CST 2017]
  Issuer: CN="-ext SAN=ip:192.168.1.100", OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
  SerialNumber: [    37f2c69b]

Certificate Extensions: 2
[1]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  IPAddress: 192.168.1.100
]

[2]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 71 0B F4 24 D0 7C A3 62   56 2D CA 47 C8 08 F3 71  q..$...bV-.G...q
0010: 7A 9D EE 87                                        z...
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: 0C 1E 8A 33 FD 77 E9 96   5A CB 88 9F C5 B1 ED 73  ...3.w..Z......s
0010: 0D 86 6B 00 E0 75 97 C3   14 A5 5D 8F F5 97 32 1F  ..k..u....]...2.
0020: 99 6A C6 A2 88 BC 52 AA   0F 97 0F D5 66 3D 9E F7  .j....R.....f=..
0030: 3B D2 39 A1 6F A6 A0 16   76 03 12 0F CB 4F 2F 61  ;.9.o...v....O/a
0040: 31 4D 9B 39 E2 95 9A 05   EC 04 9F 03 7D AA 1B 74  1M.9...........t
0050: 91 AE C9 8C 7C 75 A4 2F   1C 36 9A A4 85 40 56 9D  .....u./[email protected]
0060: 1E 09 F3 98 28 D4 2F 00   CA 96 6F 15 22 6B 16 D1  ....(./...o."k..
0070: CC 49 FE CA 24 EE 1E 71   31 40 67 BF C1 0A C6 84  [email protected]
0080: CD E5 05 F9 3A 0D 47 F7   96 96 19 9A 6D 98 BD AF  ....:.G.....m...
0090: E3 31 B4 98 BB E7 7F 32   5A E2 98 01 D9 08 BF 40  [email protected]
00A0: 6D A5 D1 27 39 67 FB 2F   BE A6 58 E9 E2 7D 9F EE  m..'9g./..X.....
00B0: 33 B9 7D 79 FF 6E AA FE   14 73 60 96 EE 24 74 CE  3..y.n...s`..$t.
00C0: 6F 89 ED CC D7 18 5F 97   60 29 76 AA 60 D6 CA 5D  o....._.`)v.`..]
00D0: 09 28 71 CC F0 F5 13 06   4A 23 E6 85 CC 1D D8 85  .(q.....J#......
00E0: E4 62 3D FB 90 83 2A 2B   A3 29 92 27 71 37 AE 4A  .b=...*+.).'q7.J
00F0: 3A F1 DB BD 3A 6B 4C 1D   49 FF 7C D6 DA 9E 69 EF  :...:kL.I.....i.

]]

對比可以發現 Subject好多資訊都不一樣,所以會報錯

相關推薦

https 通過Fiddler代理訪問 ()

在 https demo的基礎上新增程式碼 System.setProperty("https.proxyHost", "127.0.0.1"); System.setProperty("https.proxyPort", "8888"); 檢驗伺服器端證書相關的

NGINX之——配置HTTPS加密反向代理訪問–自簽CA

left https rac lan -s tar 一個 eight fcm 轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/46695495 出於公司內部訪問考慮,採用的CA是本機Openssl

內網服務器通過Squid代理訪問外網

-c etc mach rmi port 圖片 ins machine determine 環境說明   項目整體需部署Zabbix監控並配置微信報警,而Zabbix Server並不能訪問外網,故運維小哥找了臺能訪問外網的服務器做Suqid代理,Zabbix Serve

NGINX配置HTTPS加密反向代理訪問–自籤CA

出於公司內部訪問考慮,採用的CA是本機Openssl自簽名生成的,因此無法通過網際網路工信Root CA驗證,所以會出現該網站不受信任或安全證書無效的提示,直接跳過,直接訪問即可! HTTPS的原理和訪問過程: 伺服器必要條件: 一個伺服器私鑰 KEY檔案 一張與伺服器域名

Exchange2010 升級到 2016,2010用戶無法通過2016代理訪問郵箱,導致連接失敗。

-o anywhere out 功能 自動 hang 導致 chang chan 環境說明: 1臺AD和證書,4臺2010 前後端(NLB和DAG),2臺2016全角色。問題:當郵件流切換到2016後 原本在2010上的郵箱無法通過OUTLOOK連接,但是可以自動發現並配置

Python 通過ISA 代理訪問網際網路報錯 HTTP Error 407

urllib2.HTTPError: HTTP Error 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to

淺談外網通過反向代理訪問內網資源時的許可權保護

標題可能有些繞口,意思就是我在外網要訪問內網一資源(比如網站)時需要身份驗證,只有通過身份驗證才能訪問,這個該如何實現? 其實這是一朋友問我的一個問題,需求就是: 領導在外出差,要通過企業微信訪問內網資源,而這個資源又是高度保密的,不能隨便讓別人看到,公司又不提供VPN等工

C/C++程式實現通過http代理訪問網頁內容

公司通過代理上網,C程式直接通過發http請求不能獲取網頁內容,故實現了下通過代理訪問http網頁的一個測試程式。 程式很簡單,有幾個重點 先通過socket直接連線代理伺服器 向代理伺服器傳送HTTP的CONNECT標頭,格式為CONNECT www.bai

NGINX之——配置HTTPS加密反向代理訪問–自籤CA

出於公司內部訪問考慮,採用的CA是本機Openssl自簽名生成的,因此無法通過網際網路工信Root CA驗證,所以會出現該網站不受信任或安全證書無效的提示,直接跳過,直接訪問即可! HTTPS的原理和訪問過程: 伺服器必要條件 一個伺服器私鑰 KEY檔案 一張與伺服器域

安卓手機通過 Fiddler代理上網教程,抓包

Filddler 只需要 設定一個 東西: 然後檢視 當前的電腦的ip地址,例如我這裡是192.168.1.106 然後 設定 手機端的  然後設定代理伺服器主機的ip地址和埠號碼, 然後稍等一段時間就好了, 但是好像有的瀏覽器不支援這些代理,

nginx證書制作以及配置https並設置訪問http自動跳轉https(反向代理轉發jboss)

app ast mime with cati permanent bsp location admin nginx證書制作以及配置https並設置訪問http自動跳轉https 默認情況下ssl模塊並未被安裝,如果要使用該模塊則需要在編譯時指定–with

訪問dubbo沒有權限,通過ip進行跳轉服務器,並通過有權限服務器代理訪問

service _for dnat asq tro -- 編譯 tar conf #啟動ip跳轉 echo 1 > /proc/sys/net/ipv4/ip_forward vi /etc/sysctl.conf net.ipv4.ip_forward =1

阿裏雲內網機器通過squids代理訪問外網資源

transform url accep iss time eval connect 目錄 mas 一、背景 代理服務器A(10.0.1.2)機器有公網地址可正常訪問外網 業務服務器B(10.0.1.33)機器無公網地址不能訪問外網 代理服務器A((10.0.1.2)和業務服

通過nginx代理無密碼訪問開啟了x-pack驗證的elasticsearch

在有些工具中,並沒有提供elasticsearch的使用者名稱密碼介面,而如果elasticsearch開啟了x-pack驗證,使用者名稱密碼又是必須引數。如果去修改工具實現,代價又太大,所以我們可以選擇使用nginx反向代理,使用nginx為請求增加驗證,達到無密碼訪問相容老工具的目的

libcurl 設定代理,通過Fiddler可以進行抓包

轉載:https://blog.csdn.net/jaryguo/article/details/53021923 用libcurl在專案開發過程中,除錯階段需要進行抓包測試,但Fiddler不能收到應用的Http連線。 Google了一下,因為應用用了libcurl的介面來建立HTTP連線,如果要使用F

okhttp本地代理demo(通過本地的SS二次代理訪問外網)

import java.io.IOException; import java.net.InetSocketAddress; import java.net.Proxy; import java.util.concurrent.TimeUnit; import com.squareup.okhtt

如何讓 curl 命令通過代理訪問

如何讓 curl 命令通過代理訪問 Linux.中國 - 開源中文社群 2018-01-18  8909 閱讀 技術 我的系統管理員給我提供瞭如下代理資訊: IP: 202.54.1.1 Port: 3128 Username: foo Password

fiddler抓包HTTPS配置及代理設定

使用fiddler抓包過程中遇到一系列的問題,浪費了大半天時間~~~寫下解決辦法 按照網上方法配置之後還是無法抓到cookies提示各種證書錯誤 1、解除安裝fiddler重新安裝,設定 2、設定步驟 (1)進入fiddler-option--https,去掉左邊的勾,然後儲存 (2)進入IE-

由淺入深分析mybatis通過動態代理實現攔截器(外掛)的原理 !很值得

最近在用mybatis做專案,需要用到mybatis的攔截器功能,就順便把mybatis的攔截器原始碼大致的看了一遍,為了溫故而知新,在此就按照自己的理解由淺入深的理解一下它的設計。  和大家分享一下,不足和謬誤之處歡迎交流。直接入正題。  首先,先不管mybatis的原始碼

Nginx反向代理通過域名無法訪問專案的解決辦法

配置好Nginx反向代理後,可以通過域名訪問至Linux環境下搭建部署的Tomcat,卻無法訪問所部署的專案,報錯500及以上,此處給出解決辦法: 在Tomcat與Nginx都啟動的狀態下:(本機的Tomcat與Nginx都安裝在/usr/java目錄下) 注意:確保/et