Skip to content

Instantly share code, notes, and snippets.

@gwpantazes
Last active October 24, 2018 22:39
Show Gist options
  • Save gwpantazes/0fcefc30dd5383b90116480f12cd6093 to your computer and use it in GitHub Desktop.
Save gwpantazes/0fcefc30dd5383b90116480f12cd6093 to your computer and use it in GitHub Desktop.
BrowserMobProxy Intermittent SSLException with unknown_ca
import io.github.bonigarcia.wdm.WebDriverManager;
import net.lightbody.bmp.BrowserMobProxy;
import net.lightbody.bmp.BrowserMobProxyServer;
import net.lightbody.bmp.client.ClientUtil;
import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.CaptureType;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
class BrowserMobProxyHelloWorld {
enum Browser {CHROME, FIREFOX}
static Browser currentBrowser = Browser.CHROME;
public static void main(String[] args) {
BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.setTrustAllServers(true);
proxy.start(0);
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
WebDriver driver;
if (currentBrowser == Browser.CHROME) {
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(new ChromeOptions()
.setAcceptInsecureCerts(true)
.setProxy(seleniumProxy));
} else if (currentBrowser == Browser.FIREFOX) {
WebDriverManager.firefoxdriver().setup();
driver = new FirefoxDriver(new FirefoxOptions()
.setAcceptInsecureCerts(true)
.setProxy(seleniumProxy));
} else {
throw new IllegalArgumentException("Unsupported browser for this demo.");
}
proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
proxy.newHar("wolframalpha.com");
driver.get("https://www.test.wolframalpha.com");
Har har = proxy.getHar();
proxy.newHar("wolframalpha.com");
driver.get("https://www.test.wolframalpha.com/input/?i=1-1");
har = proxy.getHar();
driver.quit();
proxy.stop();
}
}
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gwpantazes</groupId>
<artifactId>bmphelloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Browser Mob Proxy Hello World Demo</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.13.0</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-core</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
</project>
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=63099:/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/georgep/Library/Caches/IdeaIC2018.2/compile-server/wolfram_alpha_web_automated_test_suite_9ef31689/scratches/out:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/tools.jar:/Users/georgep/Documents/workspace/WolframAlphaWebAutomatedTestSuite/target/test-classes:/Users/georgep/Documents/workspace/WolframAlphaWebAutomatedTestSuite/target/classes:/Users/georgep/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/georgep/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/georgep/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-java/3.13.0/selenium-java-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-api/3.13.0/selenium-api-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-chrome-driver/3.13.0/selenium-chrome-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-edge-driver/3.13.0/selenium-edge-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-firefox-driver/3.13.0/selenium-firefox-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-ie-driver/3.13.0/selenium-ie-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-opera-driver/3.13.0/selenium-opera-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-remote-driver/3.13.0/selenium-remote-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-safari-driver/3.13.0/selenium-safari-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-support/3.13.0/selenium-support-3.13.0.jar:/Users/georgep/.m2/repository/net/bytebuddy/byte-buddy/1.8.3/byte-buddy-1.8.3.jar:/Users/georgep/.m2/repository/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar:/Users/georgep/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/georgep/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/georgep/.m2/repository/com/google/code/gson/gson/2.8.4/gson-2.8.4.jar:/Users/georgep/.m2/repository/org/apache/httpcomponents/httpcore/4.4.9/httpcore-4.4.9.jar:/Users/georgep/.m2/repository/com/squareup/okhttp3/okhttp/3.10.0/okhttp-3.10.0.jar:/Users/georgep/.m2/repository/com/squareup/okio/okio/1.14.1/okio-1.14.1.jar:/Users/georgep/.m2/repository/com/google/guava/guava/26.0-jre/guava-26.0-jre.jar:/Users/georgep/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/Users/georgep/.m2/repository/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.jar:/Users/georgep/.m2/repository/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3.jar:/Users/georgep/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar:/Users/georgep/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar:/Users/georgep/.m2/repository/org/apache/commons/commons-lang3/3.7/commons-lang3-3.7.jar:/Users/georgep/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar:/Users/georgep/.m2/repository/org/json/json/20180813/json-20180813.jar:/Users/georgep/.m2/repository/org/testng/testng/6.14.3/testng-6.14.3.jar:/Users/georgep/.m2/repository/com/beust/jcommander/1.72/jcommander-1.72.jar:/Users/georgep/.m2/repository/org/apache-extras/beanshell/bsh/2.0b6/bsh-2.0b6.jar:/Users/georgep/.m2/repository/io/github/bonigarcia/webdrivermanager/2.2.3/webdrivermanager-2.2.3.jar:/Users/georgep/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar:/Users/georgep/.m2/repository/org/rauschig/jarchivelib/0.7.1/jarchivelib-0.7.1.jar:/Users/georgep/.m2/repository/org/apache/commons/commons-compress/1.9/commons-compress-1.9.jar:/Users/georgep/.m2/repository/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar:/Users/georgep/.m2/repository/net/lightbody/bmp/browsermob-core/2.1.5/browsermob-core-2.1.5.jar:/Users/georgep/.m2/repository/net/lightbody/bmp/littleproxy/1.1.0-beta-bmp-17/littleproxy-1.1.0-beta-bmp-17.jar:/Users/georgep/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.9/jackson-core-2.8.9.jar:/Users/georgep/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.8.9/jackson-databind-2.8.9.jar:/Users/georgep/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.8.9/jackson-annotations-2.8.9.jar:/Users/georgep/.m2/repository/dnsjava/dnsjava/2.1.8/dnsjava-2.1.8.jar:/Users/georgep/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar:/Users/georgep/.m2/repository/com/jcraft/jzlib/1.1.3/jzlib-1.1.3.jar:/Users/georgep/.m2/repository/io/netty/netty-all/4.0.51.Final/netty-all-4.0.51.Final.jar:/Users/georgep/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.58/bcprov-jdk15on-1.58.jar:/Users/georgep/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.58/bcpkix-jdk15on-1.58.jar:/Users/georgep/.m2/repository/net/lightbody/bmp/mitm/2.1.5/mitm-2.1.5.jar:/Users/georgep/.m2/repository/com/wolfram/page_object_library/0.4-SNAPSHOT/page_object_library-0.4-SNAPSHOT.jar:/Users/georgep/.m2/repository/org/unbescape/unbescape/1.1.5.RELEASE/unbescape-1.1.5.RELEASE.jar Scratch
11:54:05.654 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Starting proxy at address: 0.0.0.0/0.0.0.0:0
11:54:05.681 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Proxy listening with TCP transport
11:54:05.732 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Proxy started at address: /0:0:0:0:0:0:0:0:63102
1540400046134 mozrunner::runner INFO Running command: "/Applications/Firefox.app/Contents/MacOS/firefox-bin" "-marionette" "-foreground" "-no-remote" "-profile" "/var/folders/sv/5gh4tk990539nzhdt311pg0h000_fp/T/rust_mozprofile.7bcVXHmiacb9"
2018-10-24 11:54:07.185 plugin-container[2067:85059] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7a3f, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2018-10-24 11:54:07.368 plugin-container[2068:85086] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x813f, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
1540400047552 Marionette INFO Listening on port 63223
1540400047591 Marionette WARN TLS certificate errors will be ignored for this session
1540400047596 Marionette INFO Proxy settings initialised: {"proxyType":"manual","httpProxy":"georgepemaclap.local:63102","sslProxy":"georgepemaclap.local:63102"}
1540400047623 Marionette DEBUG [4294967297] Frame script loaded
1540400047625 Marionette DEBUG [4294967297] Frame script registered
Oct 24, 2018 11:54:07 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
1540400047811 Marionette DEBUG [4294967297] Received DOM event beforeunload for about:blank
2018-10-24 11:54:08.272 plugin-container[2069:85213] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x753f, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
1540400048835 Marionette DEBUG [4294967297] Received DOM event pagehide for about:blank
11:54:08.872 [LittleProxy-0-ProxyToServerWorker-7] WARN n.l.b.f.ServerResponseCaptureFilter - Cannot decode unsupported content encoding type br
11:54:08.874 [LittleProxy-0-ProxyToServerWorker-7] WARN n.l.bmp.filters.HarCaptureFilter - Unable to decompress content with encoding: br. Contents will be encoded as base64 binary data.
1540400048913 Marionette DEBUG [4294967297] Received DOM event DOMContentLoaded for https://www.google.com/
1540400049983 Marionette DEBUG [4294967297] Received DOM event pageshow for https://www.google.com/
1540400049991 Marionette INFO Stopped listening on port 63223
11:54:10.259 [LittleProxy-0-ClientToProxyWorker-5] INFO o.l.p.impl.ClientToProxyConnection - (NEGOTIATING_CONNECT) [id: 0x7828720b, L:/10.6.150.15:63102 - R:/10.6.150.15:63268]: An IOException occurred on ClientToProxyConnection: Connection reset by peer
11:54:10.262 [LittleProxy-0-ProxyToServerWorker-5] INFO o.l.p.impl.ProxyToServerConnection - (DISCONNECTED) [id: 0x3e2b7267, L:0.0.0.0/0.0.0.0:63269 ! R:adservice.google.com/172.217.9.66:443]: Connection to upstream server failed
java.nio.channels.ClosedChannelException: null
at io.netty.handler.ssl.SslHandler.channelInactive(...)(Unknown Source)
11:54:10.453 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Shutting down proxy server gracefully
11:54:10.453 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Closing all channels (graceful)
11:54:10.458 [main] INFO o.littleshoot.proxy.impl.ServerGroup - Shutting down server group event loops (graceful)
11:54:12.674 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Done shutting down proxy server
Process finished with exit code 0
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=63291:/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/georgep/Library/Caches/IdeaIC2018.2/compile-server/wolfram_alpha_web_automated_test_suite_9ef31689/scratches/out:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/tools.jar:/Users/georgep/Documents/workspace/WolframAlphaWebAutomatedTestSuite/target/test-classes:/Users/georgep/Documents/workspace/WolframAlphaWebAutomatedTestSuite/target/classes:/Users/georgep/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/georgep/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/georgep/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-java/3.13.0/selenium-java-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-api/3.13.0/selenium-api-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-chrome-driver/3.13.0/selenium-chrome-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-edge-driver/3.13.0/selenium-edge-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-firefox-driver/3.13.0/selenium-firefox-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-ie-driver/3.13.0/selenium-ie-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-opera-driver/3.13.0/selenium-opera-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-remote-driver/3.13.0/selenium-remote-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-safari-driver/3.13.0/selenium-safari-driver-3.13.0.jar:/Users/georgep/.m2/repository/org/seleniumhq/selenium/selenium-support/3.13.0/selenium-support-3.13.0.jar:/Users/georgep/.m2/repository/net/bytebuddy/byte-buddy/1.8.3/byte-buddy-1.8.3.jar:/Users/georgep/.m2/repository/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar:/Users/georgep/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/georgep/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/georgep/.m2/repository/com/google/code/gson/gson/2.8.4/gson-2.8.4.jar:/Users/georgep/.m2/repository/org/apache/httpcomponents/httpcore/4.4.9/httpcore-4.4.9.jar:/Users/georgep/.m2/repository/com/squareup/okhttp3/okhttp/3.10.0/okhttp-3.10.0.jar:/Users/georgep/.m2/repository/com/squareup/okio/okio/1.14.1/okio-1.14.1.jar:/Users/georgep/.m2/repository/com/google/guava/guava/26.0-jre/guava-26.0-jre.jar:/Users/georgep/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/Users/georgep/.m2/repository/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.jar:/Users/georgep/.m2/repository/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3.jar:/Users/georgep/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar:/Users/georgep/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar:/Users/georgep/.m2/repository/org/apache/commons/commons-lang3/3.7/commons-lang3-3.7.jar:/Users/georgep/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar:/Users/georgep/.m2/repository/org/json/json/20180813/json-20180813.jar:/Users/georgep/.m2/repository/org/testng/testng/6.14.3/testng-6.14.3.jar:/Users/georgep/.m2/repository/com/beust/jcommander/1.72/jcommander-1.72.jar:/Users/georgep/.m2/repository/org/apache-extras/beanshell/bsh/2.0b6/bsh-2.0b6.jar:/Users/georgep/.m2/repository/io/github/bonigarcia/webdrivermanager/2.2.3/webdrivermanager-2.2.3.jar:/Users/georgep/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar:/Users/georgep/.m2/repository/org/rauschig/jarchivelib/0.7.1/jarchivelib-0.7.1.jar:/Users/georgep/.m2/repository/org/apache/commons/commons-compress/1.9/commons-compress-1.9.jar:/Users/georgep/.m2/repository/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar:/Users/georgep/.m2/repository/net/lightbody/bmp/browsermob-core/2.1.5/browsermob-core-2.1.5.jar:/Users/georgep/.m2/repository/net/lightbody/bmp/littleproxy/1.1.0-beta-bmp-17/littleproxy-1.1.0-beta-bmp-17.jar:/Users/georgep/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.9/jackson-core-2.8.9.jar:/Users/georgep/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.8.9/jackson-databind-2.8.9.jar:/Users/georgep/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.8.9/jackson-annotations-2.8.9.jar:/Users/georgep/.m2/repository/dnsjava/dnsjava/2.1.8/dnsjava-2.1.8.jar:/Users/georgep/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar:/Users/georgep/.m2/repository/com/jcraft/jzlib/1.1.3/jzlib-1.1.3.jar:/Users/georgep/.m2/repository/io/netty/netty-all/4.0.51.Final/netty-all-4.0.51.Final.jar:/Users/georgep/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.58/bcprov-jdk15on-1.58.jar:/Users/georgep/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.58/bcpkix-jdk15on-1.58.jar:/Users/georgep/.m2/repository/net/lightbody/bmp/mitm/2.1.5/mitm-2.1.5.jar:/Users/georgep/.m2/repository/com/wolfram/page_object_library/0.4-SNAPSHOT/page_object_library-0.4-SNAPSHOT.jar:/Users/georgep/.m2/repository/org/unbescape/unbescape/1.1.5.RELEASE/unbescape-1.1.5.RELEASE.jar Scratch
11:55:06.949 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Starting proxy at address: 0.0.0.0/0.0.0.0:0
11:55:06.977 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Proxy listening with TCP transport
11:55:07.029 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Proxy started at address: /0:0:0:0:0:0:0:0:63294
1540400107330 mozrunner::runner INFO Running command: "/Applications/Firefox.app/Contents/MacOS/firefox-bin" "-marionette" "-foreground" "-no-remote" "-profile" "/var/folders/sv/5gh4tk990539nzhdt311pg0h000_fp/T/rust_mozprofile.1Nv9vc5PyNWZ"
2018-10-24 11:55:08.418 plugin-container[2078:85989] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7d03, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2018-10-24 11:55:08.613 plugin-container[2079:86016] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7143, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
1540400108852 Marionette INFO Listening on port 63428
1540400108878 Marionette WARN TLS certificate errors will be ignored for this session
1540400108883 Marionette INFO Proxy settings initialised: {"proxyType":"manual","httpProxy":"georgepemaclap.local:63294","sslProxy":"georgepemaclap.local:63294"}
1540400108913 Marionette DEBUG [4294967297] Frame script loaded
1540400108915 Marionette DEBUG [4294967297] Frame script registered
Oct 24, 2018 11:55:08 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
1540400109081 Marionette DEBUG [4294967297] Received DOM event beforeunload for about:blank
2018-10-24 11:55:09.429 plugin-container[2080:86162] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8e3f, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
1540400110401 Marionette DEBUG [4294967297] Received DOM event pagehide for about:blank
11:55:10.437 [LittleProxy-0-ProxyToServerWorker-5] WARN n.l.b.f.ServerResponseCaptureFilter - Cannot decode unsupported content encoding type br
11:55:10.439 [LittleProxy-0-ProxyToServerWorker-5] WARN n.l.bmp.filters.HarCaptureFilter - Unable to decompress content with encoding: br. Contents will be encoded as base64 binary data.
1540400110471 Marionette DEBUG [4294967297] Received DOM event DOMContentLoaded for https://www.google.com/
1540400110686 Marionette DEBUG [4294967297] Received DOM event pageshow for https://www.google.com/
1540400110695 Marionette INFO Stopped listening on port 63428
11:55:10.784 [LittleProxy-0-ClientToProxyWorker-2] ERROR o.l.p.impl.ClientToProxyConnection - (AWAITING_INITIAL) [id: 0xdc0f6f7e, L:/10.6.150.15:63294 - R:/10.6.150.15:63468]: Caught an exception on ClientToProxyConnection
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLException: Received fatal alert: unknown_ca
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:461)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1302)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:646)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:581)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.net.ssl.SSLException: Received fatal alert: unknown_ca
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1666)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1634)
at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1800)
at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1083)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at io.netty.handler.ssl.SslHandler$SslEngineType$3.unwrap(SslHandler.java:272)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1175)
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1087)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1122)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:491)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:430)
... 15 common frames omitted
11:55:10.824 [LittleProxy-0-ClientToProxyWorker-7] INFO o.l.p.impl.ClientToProxyConnection - (NEGOTIATING_CONNECT) [id: 0x8fc6940c, L:/10.6.150.15:63294 - R:/10.6.150.15:63462]: An IOException occurred on ClientToProxyConnection: Connection reset by peer
11:55:10.826 [LittleProxy-0-ProxyToServerWorker-7] INFO o.l.p.impl.ProxyToServerConnection - (DISCONNECTED) [id: 0xbf1a84a0, L:0.0.0.0/0.0.0.0:63463 ! R:tracking-protection.cdn.mozilla.net/13.33.107.174:443]: Connection to upstream server failed
java.nio.channels.ClosedChannelException: null
at io.netty.handler.ssl.SslHandler.channelInactive(...)(Unknown Source)
11:55:11.133 [LittleProxy-0-ClientToProxyWorker-4] INFO o.l.p.impl.ClientToProxyConnection - (NEGOTIATING_CONNECT) [id: 0xc5624f98, L:/10.6.150.15:63294 - R:/10.6.150.15:63472]: An IOException occurred on ClientToProxyConnection: Connection reset by peer
11:55:11.134 [LittleProxy-0-ProxyToServerWorker-4] INFO o.l.p.impl.ProxyToServerConnection - (HANDSHAKING) [id: 0x8ccfc0ae, L:0.0.0.0/0.0.0.0:63473 ! R:www.gstatic.com/216.58.192.131:443]: Connection to upstream server failed
java.nio.channels.ClosedChannelException: null
at io.netty.handler.ssl.SslHandler.channelInactive(...)(Unknown Source)
11:55:11.160 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Shutting down proxy server gracefully
11:55:11.160 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Closing all channels (graceful)
11:55:11.173 [main] INFO o.littleshoot.proxy.impl.ServerGroup - Shutting down server group event loops (graceful)
11:55:11.279 [LittleProxy-0-ProxyToServerWorker-3] INFO o.l.p.impl.ProxyToServerConnection - (DISCONNECTED) [id: 0xc1e13afd, L:0.0.0.0/0.0.0.0:63471]: Connection to upstream server failed
java.nio.channels.ClosedChannelException: null
at io.netty.handler.ssl.SslHandler.channelInactive(...)(Unknown Source)
11:55:13.496 [main] INFO o.l.p.impl.DefaultHttpProxyServer - Done shutting down proxy server
Process finished with exit code 0
@gwpantazes
Copy link
Author

gwpantazes commented Oct 24, 2018

BrowserMobProxy is getting an SSL Exception. A large portion of other errors got fixed by accepting insecure certificates, but now this latent SSL Exception is still causing problems.

What I've narrowed down about the unkown_ca error:

  • The problem is not the network. I thought an internal network was causing issues but the same issue happened on my cell phone personal hotspot.
  • The problem is not due to insecure certs. Accepting insecure certs helped get rid of other errors, but not this one.

@gwpantazes
Copy link
Author

Mengqi couldn't reproduce the unknown_ca error on his side.

@gwpantazes
Copy link
Author

At this point, we've applied the trustAllServers option which has narrowed down the issue to just Firefox. Chrome seems to do just fine now that it can ignore insecure certs. But it would be awesome to eventually figure out how to deal with Firefox's errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment