I'm new to Magento and not a *nix pro, so I hope I'm just making a rookie mistake here. My setup...
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), :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. (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 ...
I don't know if this is related, and there are a few more messages (which I can include if they'll be helpful), but the above seems to be the relevant section. I don't notice any other errors in the console on any other pages, either http or https.
Can anyone help me? I'm going bananas with this.
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.