# \[Solved\] Mobile App(Android) TLS handshake error

**URL:** <https://forum.mattermost.com/t/solved-mobile-app-android-tls-handshake-error/7005>\
**Category:** Troubleshooting\
**Created:** [April 5, 2019, 9:54am UTC](https://forum.mattermost.com/t/solved-mobile-app-android-tls-handshake-error/7005 "2019-04-05T09:54:48Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![uncdubdiver](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/uncdubdiver/32/7322_2.png) [@uncdubdiver](https://forum.mattermost.com/u/uncdubdiver)\
**Post date:** [February 6, 2024, 2:26am UTC](https://forum.mattermost.com/t/solved-mobile-app-android-tls-handshake-error/7005/13 "2024-02-06T02:26:31Z")

</div>

Since the comments haven’t really told HOW to fix this, I figured I’d share the way I got it working, only took me about 3mon to figure it out.

With this, I have the Windows 10 MatterMost app working properly, I have the web [and mobile] browsers working properly, and I have the Android app working properly. I don’t have an iPhone to test it’s app, however I would assume since Apache is providing the SSL verification Correctly, it should work as well.

I’m running MM behind a regular linux apache service (mod\_proxy). I have the following in place:

- Apache 2.4 with mod\_ssl listening on port 443
- Wildcard SSL certificate (I have the key and crt issued by an CA, not self-signed)
- MM on port 8065

I have essentially set:  
config.json (or MM configuration):

```auto
  "ListenAddress":":8065",
  "ConnectionSecurity":"TLS",
  "TLSCertFile":"CRT file issued by my CA",
  "TLSKeyFile":"My key file for my CSR and CRT",
  "TLSMinVer":"1.2",
  "Forward80To443":false,
  "WebsocketSecurityPort":8065,
 ......

```

I don’t believe I changed anything else within it.

I have my key, issues CRT, and CA-Bundle in /etc/pki/tls/.

I have my apache config setup as /etc/httpd/conf.d/mattermost.conf

```auto
<VirtualHost *:443>
	ServerName mychatserver.com
	SSLEngine on
	
	SSLCertificateFile /etc/pki/tls/........crt
	SSLCertificateKeyFile /etc/pki/tls/........key
	SSLCertificateChainFile /etc/pki/tls/........ca-bundle
	
	ProxyRequests Off
	ProxyPreserveHost On
	SSLProxyEngine On
	RequestHeader Set Front-End-Https "On"
	
	ProxyPass / https://127.0.0.1:8065/
	ProxyPassReverse / https://127.0.0.1:8065/
	ProxyPassReverseCookieDomain 127.0.0.1 mychatserver.com
	
	# Set web sockets
	RewriteEngine On
	RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC]
	RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
	RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
	RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]

	<Location />
		Require all granted
		ProxyPass https://127.0.0.1:8065/
		ProxyPassReverse https://127.0.0.1:8065/
		ProxyPassReverseCookieDomain 127.0.0.1 mychatserver.com
	</Location>
</VirtualHost>

```

Now the tag may not be needed, but I hadn’t removed it to test it… if it ain’t broke, don’t fix it.

I hope this helps someone else out down the road!

---

_[View the full topic](https://forum.mattermost.com/t/solved-mobile-app-android-tls-handshake-error/7005)._
