Topic on Extension talk:VisualEditor

Jump to navigation Jump to search
Summary by Seb35

Mis-configuration and probably issue with an HTTP Authentication on the wiki.

Ganomix (talkcontribs)

I'm running MediaWiki 1.27.1 (with https connection) on Windows Server 2012 and IIS. So far, I haven't been able to get Visual Editor to work. I have installed parsoid and the Visual Editor extension. I also have parsoid running, but when I try to edit pages, I receive the following error message:

"Error loading data from server: (curl error: 60) Peer certificate cannot be authenticated with given CA certificates: docserver-http-error: (curl error: 60) Peer certificate cannot be authenticated with given CA certificates. Would you like to retry?"

I'm guessing that this has something to do with the SSL certificate, but I don't know how to get Parsoid to work with it. Does anyone have any suggestions?

Ganomix (talkcontribs)

Managed to fix this error with the following instructions:

Use this certificate root certificate bundle:

Copy this certificate bundle on your disk. And use this on php.ini

curl.cainfo = "path_to_cert\cacert.pem"

However, now I get error 401. I set localsettings.php to forward the cookies, but error 401 is still displayed.

I also allowed the Parsoid server (User:Andru~mediawikiwiki/Allow Parsoid Server), but error 401 didn't go away with these instructions either.

Seb35 (talkcontribs)
  1. Is it a public wiki?
  2. The two communications between VE and Parsoid should be checked:
    1. VE -> Parsoid: is it on localhost? and http?
    2. Parsoid -> VE: this is a https connection from nodejs (Parsoid), so nodejs must trust the wiki certificate

Probably the last point is missing, and I guess you have a self-signed certificate or an uncommon/private CA. Until quite recent nodejs versions, it was not possible to change the certificate store (see ); now it is possible with the very recent versions of nodejs (newer than end of 2016). So you should install a very recent version of nodejs and make sure the wiki certificate is recognized by a CA in the system certificate store.

Seb35 (talkcontribs)

My previous answer was too late :)

In LocalSettings, did you configure $wgVirtualRestConfig? (There are older configuration parameters which should no more be used.)

Ganomix (talkcontribs)

Thanks for the reply. It is a private wiki. I managed to bypass the 401 error by disabling Basic Authentication and enabling Anonymous Authentication for api.php in IIS.

However, now I ran into yet another issue. When I click edit, the Visual Editor starts loading but the loading bar gets stuck at 100 %, and I am not able to edit the page.

I have configured $wgVirtualRestConfig as follows:

$wgVirtualRestConfig['modules']['parsoid'] = array(

// URL to the Parsoid instance

// Use port 8142 if you use the Debian package

'url' => 'https://hostname/wiki/api.php',

// Parsoid "domain", see below (optional)

'domain' => 'localhost',

// Parsoid "prefix", see below (optional)

'prefix' => 'localhost'


Did I make some mistake there?

Ganomix (talkcontribs)

Visual Editor seems to be working for me now. I simply removed the code above from LocalSettings.php, and it started working.

Seb35 (talkcontribs)

I guess it works because default parameters are fine for you: your Parsoid is listening on localhost on port 8000. In $wgVirtualRestConfig, the 'url' parameter must be the address (IP+port) of Parsoid (=the external programm running with nodejs), so e.g. something like ''.

So probably you don’t have to change these default parameters, but it better to understand the exact meaning of these basic parameters.

And given you mention there were a Basic Authentication, it was probably the issue, I never saw Parsoid used for a HTTP-Authenticated wiki and I guess it is not implemented. If you want to harden a bit the configuration, you can disable authentication for api.php only for localhost.

Seb35 (talkcontribs)

With your $wgVirtualRestConfig, VisualEditor called itself and at the same time expected to talk to Parsoid, so it created a loop and the 401 error was probably because of that.