获取安全证书有两个办法:互联网认证的CA处获取。自建CA本身给本身签名。css
一、准备一台服务器(有公网IP),已作好域名解析。这里以Ubuntu 14.04 TLS为例。
二、确保该服务器80,443端口能够从互联网访问到且不被占用(关掉占用端口的服务器)。node
由于LetsEncrypt申请证书是须要联网签名的,而且要用到80端口。nginx
在成功获取证书后,服务器IP和端口就可另做他用。所以,能够在某台有公网IP的主机服务器上获取证书,再将证书转移到其它服务器进行使用。若采用 这样的方式,Docker客户端须要将私网IP和dockie.mydomain.com对应写入hosts文件或将该解析写到私网DNS服务器里。但证 书到期renew的时候还须要一样的公网域名(公网IP能够不一样)。git
三、在服务器上获取签名证书github
SH$ git clone https://github.com/letsencrypt/letsencrypt.git $ cd letsencrypt $ sudo ./certbot-auto certonly --standalone --email admin@example.com -d example.com -d www.example.com -d other.example.net
这里直接根据官方提供的方法从GITHUB获取安装包和目录安装,上面是一个标准的格式,根据咱们的邮箱、以及须要添加的域名设置,若是多域名直接 在后面添加-d就能够,好比继续添加其余域名 -d www.laojiang.me -d laojiang.me以此类推。docker
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/laojiang.me/fullchain.pem. Your cert will expire on 2016-07-13. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - If you like Let's Encrypt, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
看到这样的文字和提示就表明获取Let’s Encrypt证书成功,时间是90天,咱们须要在到期前手手动续约就能够继续90天。而后咱们在”/etc/letsencrypt/live/域名 /“目录中看到4个文件(cert.pem chain.pem fullchain.pem privkey.pem)。浏览器
四、更新证书
使用下面这条命令,更新证书,它将更新到期时间不到30天的证书,并且它会根据你当初生成证书的设置更新你的证书。安全
$ ./certbot-auto renew --dry-run
五、经过钩子更新证书bash
$ ./certbot-auto renew --standalone --pre-hook "service nginx stop" --post-hook "service nginx start"
这里使用了一个钩子,--pre-hook
>更新前执行命令命令,--post-hook
更新以后执行命令。服务器
执行如下命令,它会在文件夹下生成domain.key和domain.crt
SHmkdir -p certs && openssl req \ -newkey rsa:4096 \ -nodes -sha256 \ -keyout certs/domain.key \ -x509 -days 365 \ -out certs/domain.crt
相关参数说明:
SHCountry Name (2 letter code) [AU]:CN #国家代码,中国CN State or Province Name (full name) [Some-State]:Sichuan #省份全拼 Locality Name (eg, city) []:Chengdu #城市 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Person #组织名,公司名 Organizational Unit Name (eg, section) []:Chen #部门名称 Common Name (e.g. server FQDN or YOUR name) []:registry.domain.com #这里必须填写Docker Registry使用的域名 Email Address []:ccc@domain.com #电子邮件
自签名证书,使用Docker Registry的Docker机须要将domain.crt拷贝到 /etc/docker/certs.d/[docker_registry_domain]/ca.crt,而后重启docker,将domain.crt内容放入系统的CA bundle文件当中,使操做系统信任咱们的自签名证书。
CentOS 6 / 7中bundle文件的位置在/etc/pki/tls/certs/ca-bundle.crt:
cat domain.crt >> /etc/pki/tls/certs/ca-bundle.crt
Ubuntu/Debian Bundle文件地址/etc/ssl/certs/ca-certificates.crt
cat domain.crt >> /etc/ssl/certs/ca-certificates.crt
Mac
一、点击钥匙串访问
二、点击系统
三、点击证书
四、将domain.crt拖到目录下 五、输入密码,添加成功 六、双击该证书,点击信任,选择 七、退出