mirror of
				https://github.com/therootcompany/greenlock-express.js.git
				synced 2025-11-04 05:52:47 +00:00 
			
		
		
		
	move koa example
This commit is contained in:
		
							parent
							
								
									bf23cf3077
								
							
						
					
					
						commit
						b0e2decbc1
					
				
							
								
								
									
										84
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								README.md
									
									
									
									
									
								
							@ -80,6 +80,10 @@ and that will cause you to be rate-limited and or blocked from the ACME server)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Examples
 | 
					## Examples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* https / express
 | 
				
			||||||
 | 
					* http2 / express
 | 
				
			||||||
 | 
					* koa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Use with raw http / https modules
 | 
					### Use with raw http / https modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Let's say you want to redirect all http to https.
 | 
					Let's say you want to redirect all http to https.
 | 
				
			||||||
@ -128,6 +132,46 @@ In short these are the only functions you need to be aware of:
 | 
				
			|||||||
  * `{ configDir: pathname, approveRegistration: func }`
 | 
					  * `{ configDir: pathname, approveRegistration: func }`
 | 
				
			||||||
* `LEX.createAcmeResponder(lex, onRequest)`
 | 
					* `LEX.createAcmeResponder(lex, onRequest)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Using with Koa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Note: using staging server url, remove .testing() for production
 | 
				
			||||||
 | 
					var lex = require('letsencrypt-express').testing();
 | 
				
			||||||
 | 
					var koa = require('koa');
 | 
				
			||||||
 | 
					var app = koa();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.use(function *(){
 | 
				
			||||||
 | 
					  this.body = 'Hello World';
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lex.create({
 | 
				
			||||||
 | 
					  configDir: './letsencrypt.config'                 // ~/letsencrypt, /etc/letsencrypt, whatever you want
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					, onRequest: app.callback()                         // your koa app callback
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					, letsencrypt: null                                 // you can provide you own instance of letsencrypt
 | 
				
			||||||
 | 
					                                                    // if you need to configure it (with an agreeToTerms
 | 
				
			||||||
 | 
					                                                    // callback, for example)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					, approveRegistration: function (hostname, cb) {    // PRODUCTION MODE needs this function, but only if you want
 | 
				
			||||||
 | 
					                                                    // automatic registration (usually not necessary)
 | 
				
			||||||
 | 
					                                                    // renewals for registered domains will still be automatic
 | 
				
			||||||
 | 
					    cb(null, {
 | 
				
			||||||
 | 
					      domains: [hostname]
 | 
				
			||||||
 | 
					    , email: 'user@example.com'
 | 
				
			||||||
 | 
					    , agreeTos: true              // you
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}).listen([], [4443], function () {
 | 
				
			||||||
 | 
					  var server = this;
 | 
				
			||||||
 | 
					  var protocol = ('requestCert' in server) ? 'https': 'http';
 | 
				
			||||||
 | 
					  console.log("Listening at " + protocol + '://localhost:' + this.address().port);
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### < 140 Characters
 | 
					### < 140 Characters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Let's Encrypt in 128 characters, with spaces!
 | 
					Let's Encrypt in 128 characters, with spaces!
 | 
				
			||||||
@ -173,46 +217,6 @@ LEX.create({
 | 
				
			|||||||
});
 | 
					});
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Using with Koa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```javascript
 | 
					 | 
				
			||||||
'use strict';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Note: using staging server url, remove .testing() for production
 | 
					 | 
				
			||||||
var lex = require('letsencrypt-express').testing();
 | 
					 | 
				
			||||||
var koa = require('koa');
 | 
					 | 
				
			||||||
var app = koa();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
app.use(function *(){
 | 
					 | 
				
			||||||
  this.body = 'Hello World';
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lex.create({
 | 
					 | 
				
			||||||
  configDir: './letsencrypt.config'                 // ~/letsencrypt, /etc/letsencrypt, whatever you want
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
, onRequest: app.callback()                         // your koa app callback
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
, letsencrypt: null                                 // you can provide you own instance of letsencrypt
 | 
					 | 
				
			||||||
                                                    // if you need to configure it (with an agreeToTerms
 | 
					 | 
				
			||||||
                                                    // callback, for example)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
, approveRegistration: function (hostname, cb) {    // PRODUCTION MODE needs this function, but only if you want
 | 
					 | 
				
			||||||
                                                    // automatic registration (usually not necessary)
 | 
					 | 
				
			||||||
                                                    // renewals for registered domains will still be automatic
 | 
					 | 
				
			||||||
    cb(null, {
 | 
					 | 
				
			||||||
      domains: [hostname]
 | 
					 | 
				
			||||||
    , email: 'user@example.com'
 | 
					 | 
				
			||||||
    , agreeTos: true              // you
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}).listen([], [4443], function () {
 | 
					 | 
				
			||||||
  var server = this;
 | 
					 | 
				
			||||||
  var protocol = ('requestCert' in server) ? 'https': 'http';
 | 
					 | 
				
			||||||
  console.log("Listening at " + protocol + '://localhost:' + this.address().port);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### More Options Exposed
 | 
					### More Options Exposed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```javascript
 | 
					```javascript
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user