- By Edmond Lau
- Highly Recommended 👍
- http://www.theeffectiveengineer.com/
- They are the people who get things done. Effective Engineers produce results.
This document details how I setup LE on my server. Firstly, install the client as described on http://letsencrypt.readthedocs.org/en/latest/using.html and make sure you can execute it. I put it in /root/letsencrypt.
As it is not possible to change the ports used for the standalone authenticator and I already have a nginx running on port 80/443, I opted to use the webroot method for each of my domains (note that LE does not issue wildcard certificates by design, so you probably want to get a cert for www.example.com and example.com).
For this, I placed config files into etc/letsencrypt/configs, named after <domain>.conf. The files are simple:
| ### BEGIN INIT INFO | |
| # Provides: Xvfb | |
| # Required-Start: $local_fs $remote_fs | |
| # Required-Stop: | |
| # X-Start-Before: | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: Loads X Virtual Frame Buffer | |
| ### END INIT INFO |
The trick? pass the file descriptor from a parent process and have the server.listen reuse that descriptor. So multiprocess in their own memory space (but with ENV shared usually)
It does not balance, it leaves it to the kernel.
In the last nodejs > 0.8 there is a cluster module (functional although marked experimental)
I use Namecheap.com as a registrar, and they resale SSL Certs from a number of other companies, including Comodo.
These are the steps I went through to set up an SSL cert.
https://github.com/djvirgen/virgen-acl Simple and elegant, create your own checks. No middleware?
https://github.com/OptimalBits/node_acl Use as middleware, create your own roles and access. Great choice.
https://github.com/tschaub/authorized Similar to connect roles... but a bit more robust? you can create roles and action, and associate many roles with that action
| /* | |
| export default new GraphQLObjectType({ | |
| name: 'User', | |
| description: 'A user', | |
| fields: () => ({ | |
| first_name: { | |
| type: GraphQLString, | |
| description: 'The first name of the user.' | |
| }, | |
| email: { |
| var ffi = require('ffi'), | |
| ref = require('ref'), | |
| Struct = require('ref-struct'), | |
| Library = require('./Library'), | |
| Type = ref.Type, | |
| NULL = ref.NULL, | |
| isNull = ref.isNull; | |
| var groups = ['libs', 'types', 'structs', 'callbacks', 'enums']; |
If you haven't already set your NPM author info, now you should:
npm set init.author.name "Your Name"
npm set init.author.email "[email protected]"
npm set init.author.url "http://yourblog.com"
npm adduser