mirror of
				https://github.com/zulip/zulip-desktop.git
				synced 2025-11-03 05:23:17 +00:00 
			
		
		
		
	Merge pull request #141 from Lplenka/Certificate_Issue
✨ Added support for self-signed certificate fixes #126
This commit is contained in:
		@@ -67,7 +67,13 @@ function serverError(targetURL) {
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
		req.on('error', e => {
 | 
			
		||||
			console.error(e);
 | 
			
		||||
			if (e.toString().indexOf('Error: self signed certificate') >= 0) {
 | 
			
		||||
				const url = targetURL.replace(/^https?:\/\//, '');
 | 
			
		||||
				console.log('Server StatusCode:', 200);
 | 
			
		||||
				console.log('You are connected to:', url);
 | 
			
		||||
			} else {
 | 
			
		||||
				console.error(e);
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
		req.end();
 | 
			
		||||
	} else if (data.domain) {
 | 
			
		||||
@@ -256,9 +262,27 @@ function createMainWindow() {
 | 
			
		||||
// app.commandLine.appendSwitch('ignore-certificate-errors', 'true');
 | 
			
		||||
 | 
			
		||||
// For self-signed certificate
 | 
			
		||||
ipc.on('certificate-err', (e, domain) => {
 | 
			
		||||
	const detail = `URL: ${domain} \n Error: Self-Signed Certificate`;
 | 
			
		||||
	dialog.showMessageBox(mainWindow, {
 | 
			
		||||
		title: 'Certificate error',
 | 
			
		||||
		message: `Do you trust certificate from ${domain}?`,
 | 
			
		||||
		// eslint-disable-next-line object-shorthand
 | 
			
		||||
		detail: detail,
 | 
			
		||||
		type: 'warning',
 | 
			
		||||
		buttons: ['Yes', 'No'],
 | 
			
		||||
		cancelId: 1
 | 
			
		||||
		// eslint-disable-next-line object-shorthand
 | 
			
		||||
	}, response => {
 | 
			
		||||
		if (response === 0) {
 | 
			
		||||
			// eslint-disable-next-line object-shorthand
 | 
			
		||||
			db.push('/domain', domain);
 | 
			
		||||
			mainWindow.loadURL(domain);
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
});
 | 
			
		||||
// eslint-disable-next-line max-params
 | 
			
		||||
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
 | 
			
		||||
	console.log('warning: ', url, ' certificate-error');
 | 
			
		||||
	event.preventDefault();
 | 
			
		||||
	callback(true);
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -20,8 +20,7 @@
 | 
			
		||||
                            Zulip Server URL
 | 
			
		||||
                        </label>
 | 
			
		||||
                        <input type="text" id="url"  autofocus="autofocus" spellcheck="false" placeholder="Server URL">
 | 
			
		||||
                        <button type="submit" id="main" class="btn-primary btn-large" value="Submit"
 | 
			
		||||
                                onclick="addDomain();">Connect</button>
 | 
			
		||||
                        <button type="submit" id="main" class="btn-primary btn-large" value="Submit">Connect</button>
 | 
			
		||||
                        <p id="error"></p>
 | 
			
		||||
                    </form>
 | 
			
		||||
                </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -59,6 +59,9 @@ window.addDomain = function () {
 | 
			
		||||
					$el.main.innerHTML = 'Connect';
 | 
			
		||||
					db.push('/domain', domain);
 | 
			
		||||
					ipcRenderer.send('new-domain', domain);
 | 
			
		||||
				} else if (error.toString().indexOf('Error: self signed certificate') >= 0) {
 | 
			
		||||
					$el.main.innerHTML = 'Connect';
 | 
			
		||||
					ipcRenderer.send('certificate-err', domain);
 | 
			
		||||
				} else {
 | 
			
		||||
					$el.main.innerHTML = 'Connect';
 | 
			
		||||
					displayError('Not a valid Zulip server');
 | 
			
		||||
 
 | 
			
		||||
@@ -20,9 +20,7 @@ window.prefDomain = function () {
 | 
			
		||||
	const ipcRenderer = require('electron').ipcRenderer;
 | 
			
		||||
	const JsonDB = require('node-json-db');
 | 
			
		||||
	// eslint-disable-next-line import/no-extraneous-dependencies
 | 
			
		||||
	const {
 | 
			
		||||
		app
 | 
			
		||||
	} = require('electron').remote;
 | 
			
		||||
	const {app} = require('electron').remote;
 | 
			
		||||
 | 
			
		||||
	const db = new JsonDB(app.getPath('userData') + '/domain.json', true, true);
 | 
			
		||||
 | 
			
		||||
@@ -57,6 +55,10 @@ window.prefDomain = function () {
 | 
			
		||||
					document.getElementById('urladded').innerHTML = 'Switched to ' + newDomain;
 | 
			
		||||
					db.push('/domain', domain);
 | 
			
		||||
					ipcRenderer.send('new-domain', domain);
 | 
			
		||||
				} else if (error.toString().indexOf('Error: self signed certificate') >= 0) {
 | 
			
		||||
					document.getElementById('main').innerHTML = 'Switch';
 | 
			
		||||
					ipcRenderer.send('certificate-err', domain);
 | 
			
		||||
					document.getElementById('urladded').innerHTML = 'Switched to ' + newDomain;
 | 
			
		||||
				} else {
 | 
			
		||||
					document.getElementById('main').innerHTML = 'Switch';
 | 
			
		||||
					document.getElementById('urladded').innerHTML = 'Not a valid Zulip Server.';
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user