Su MacOS Sierra Chrome non riconosce più come validi i certificati SSL privi di un certificato intermedio.
Generiamo dalla shell un certificato combinato:
cat certificato_primario.crt certificato_intermedio.crt >> bundle.crt
In Apache avremo:
<VirtualHost *:443>
ServerName site.com
ServerAlias www.site.com
DocumentRoot /home/site/www
SSLEngine on
SSLCertificateFile /home/site/server.crt
SSLCertificateKeyFile /home/site/server.key
SSLCertificateChainFile /home/site/bundle.crt
</VirtualHost>
In nginx avremo:
server {
server_name site.com www.site.com;
listen 443 default_server ssl;
root /home/site/www;
index index.html index.php;
ssl_certificate /home/site/bundle.crt;
ssl_certificate_key /home/site/server.key;
ssl on;
}
In Node.js avremo:
'use strict';
var https = require('https');
var express = require('express');
var app = express();
var sslOptions = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt'),
ca: fs.readFileSync('bundle.crt')
};
https.createServer(sslOptions, app).listen(3000);