I'm new to Magento and not a *nix pro, so I hope I'm just making a rookie mistake here. My setup...

Magento 2.1.4 CE
CentOS 7-3.1611
nginx 1.12.0 (SSL termination only)
Varnish 4.1.0
Apache 2.4.25
PHP 7.0.15
MySQL 5.7.17

Everything seems to work fine with http (non-SSL), but I need to use https for all pages.

When I enable https, everything seems to work fine except the CHECKOUT PAGE IS EMPTY (i.e., the "GET /checkout/" request returns "200 OK" but "Content-Length: 0"). There are no messages in the browser console. I'll mention that I'm using a self-signed certificate for development, but it seems to work okay.

If I go to the cart page (/checkout/cart/) first, I get errors in the browser console (which do NOT occur in non-SSL)...

VM27901:3 Uncaught TypeError: Cannot read property 'length' of null
    at visible (eval at createBindingsStringEvaluator (knockout.js:2624), <anonymous>:3:83)
    at update (knockout.js:4558)
    at ko.dependentObservable.disposeWhenNodeIsRemoved (knockout.js:3004)
    at evaluateImmediate (knockout.js:1737)
    at ko.subscription.evaluatePossiblyAsync [as callback] (knockout.js:1677)
    at Function.notifySubscribers (knockout.js:1103)
    at Function.observable.valueHasMutated (knockout.js:1300)
    at observable (knockout.js:1285)
    at Object.setShippingRates (shipping-service.js:22)
    at Object.<anonymous> (new-address.js:60)
visible @ VM27901:3
update @ knockout.js:4558
ko.dependentObservable.disposeWhenNodeIsRemoved @ knockout.js:3004
evaluateImmediate @ knockout.js:1737
evaluatePossiblyAsync @ knockout.js:1677
notifySubscribers @ knockout.js:1103
observable.valueHasMutated @ knockout.js:1300
observable @ knockout.js:1285
setShippingRates @ shipping-service.js:22
(anonymous) @ new-address.js:60
fire @ jquery.js:3099
fireWith @ jquery.js:3211
done @ jquery.js:9310
callback @ jquery.js:9720

There are a few more messages (which I can include if they'll be helpful), but the above seems to be the relevant section.

Can anyone help me? I'm going bananas with this.

Scott B.

1 Answer 1


After much pulling of hair and gnashing of teeth, I tried switching to Apache for the SSL termination (eliminating nginx entirely and creating an Apache-Varnish-Apache sandwich). Things seem to work. Why? I don't know, and I'm not sure I care. It did simplify the stack by one component; that's not a bad thing.

I'll say this: I am new to Magento, but I don't suck at this kind of stuff, and this has been by far the hardest installation/configuration I've ever experienced (and that includes installing NetWare 2.0a from 104 5.25" floppy disks back in 1986). I'd s**tcan this whole thing if I didn't have so much time invested in it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.