bsyk / cf-letsencrypt

Let's Encrypt wrapper for Cloud-Foundry
MIT License
27 stars 22 forks source link

letsencrypt cli module has no attribute 'main' - outdated? #1

Closed jlstack closed 8 years ago

jlstack commented 8 years ago

I recently tried using this application and received the following output:

OUT Calling letsencrypt... ERR Traceback (most recent call last): ERR File "run.py", line 64, in ERR cli.main(args) ERR AttributeError: 'module' object has no attribute 'main'

It seems like this repository is referencing an older letsencrypt pacakage, is that right?

Also, I believe that letsencrypt dependency requires root access. Do you know of an approach to get around this stipulation?

bsyk commented 8 years ago

@jlstack thanks for taking the time to report this issue. You're correct that is was written against an older version of the LE library. I will look to update this to the latest version. If you've already done this, please feel free to send a PR :smile: As for root privs, they're not required due to the way CF works. The python app (and webserver) are started on an assigned non-privileged port, which doesn't require root access. CF takes care of handling the http/https connection on the default ports and forwards that into your app.

bsyk commented 8 years ago

I've made a new branch that uses letsencrypt 0.5.0 (current latest). https://github.com/bsyk/cf-letsencrypt/tree/upgrade_0.5.0 I tried this out on Bluemix using letsencrypt staging certificates and a new cf app and all worked happily. Please try it out. If it works for you too, I'll merge this back into master.

jlstack commented 8 years ago

@bsyk thank you for updating this so quickly! It seems to be working properly with the updates you made. However, I did notice one small issue. My domains.yml has the following:

"domains": [ { "domain": "mydomain.com", "hosts": [ "www" ] } ]

The logs at the end say:

Fetch the certs and logs via cf files ... You can get them with these commands: cf files letsencrypt app/conf/live/mydomain.com/cert.pem cf files letsencrypt app/conf/live/mydomain.com/chain.pem cf files letsencrypt app/conf/live/mydomain.com/fullchain.pem cf files letsencrypt app/conf/live/mydomain.com/privkey.pem

The files are actually located at the following locations:

cf files letsencrypt app/conf/live/www.mydomain.com/cert.pem cf files letsencrypt app/conf/live/www.mydomain.com/chain.pem cf files letsencrypt app/conf/live/www.mydomain.com/fullchain.pem cf files letsencrypt app/conf/live/www.mydomain.com/privkey.pem

Just a minor issue for sure. Thanks again!

bsyk commented 8 years ago

Ah, yes. That would be because there is only 1 hostname in the list. LE uses the domain as the folder name if there are multiple, and the full host if there is only 1. I can make that a bit smarter so that it works properly. Thanks for testing. Please let me know if there are any other issues you find.

bsyk commented 8 years ago

Fixed by https://github.com/bsyk/cf-letsencrypt/pull/2