`

现在还能使用的SSL(FREE)认证机构。

 
阅读更多

StartSSL 已死。 17年五月之后将不再颁发Free证书。

申请后永远是等待中。


所以请使用 'Let's Encrypt'免费且受信任的机构.



1.确保服务器安装GIT 环境。

2.确保PYTHON版本大于 2.7.1





第一步,从github克隆letsencrypt的开源脚手架
git clone https://github.com/letsencrypt/letsencrypt







第二步,开始配置你的证书


cd letsencrypt

./letsencrypt-auto certonly --standalone --email 你的邮箱@.com -d 你的域名.com -d www.你的域名.com







过程大约三分钟。



如果出现报错:

 Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 2363, in <module>
    main()
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 719, in main
    symlink=options.symlink)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 988, in create_environment
    download=download,
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 918, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 812, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /opt/eff.org/certbot/venv/bin/python2.7 - setuptools pkg_resources pip wheel failed with error code 2
root@iZbp1j2710orfy6c8xo5cbZ:/home/letsencrypt# OSError: Command /opt/eff.org/certbot/venv/bin/python2.7 - setuptools pkg_resources pip wheel failed with error code 2






请更新virtualenv


sudo pip install --upgrade virtualenv



再重复敲一遍配置命令即可!


Agree

Yes


如果你配置了邮箱,它会需要你验证。根据提示操作即可。




完成Let's Encrypt证书的生成后,在

"/etc/letsencrypt/live/你的域名.com/"

目录下有4个文件

cert.pem        - Apache服务器端证书

chain.pem       - Apache根证书和中继证书

fullchain.pem   - Nginx所需要ssl_certificate文件

privkey.pem     - 安全证书KEY文件



如果用的Nginx

配置如下



# SSL configuration
	
listen 443 ssl default_server;
ssl on;

ssl_certificate /etc/letsencrypt/live/你的域名.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/你的域名.com/privkey.pem;

server_name www.你的域名.com;







Let's Encrypt证书是有效期90天。


快要过期的时候


直接


./letsencrypt-auto certonly --renew-by-default --email 你的邮箱@.com -d 你的域名.com -d www.你的域名.com



这样即可完成更新继续免费使用。

分享到:
评论
2 楼 沈寅麟 2017-12-01  
PEM格式证书转换为jks文件

转换为pkcs12格式:

~/tmp/cert# openssl pkcs12 -export -in public.crt -inkey private.pem -out server.p12 -name server -passin pass:${passwd} -passout pass:${passwd}
~/tmp/cert# ll
total 16
-rw-r--r-- 1 root root  664 Jun 14 20:43 cert.csr
-rw-r--r-- 1 root root  963 Jun 14 20:27 private.pem
-rw-r--r-- 1 root root  871 Jun 14 20:44 public.crt
-rw-r--r-- 1 root root 1682 Jun 14 20:55 server.p12
导入到jks中:

~/tmp/cert# keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass ${passwd} -alias server -deststorepass ${passwd} -destkeypass ${passwd} -destkeystore ServerCert.jks
~/tmp/cert# ll
total 20
-rw-r--r-- 1 root root  664 Jun 14 20:43 cert.csr
-rw-r--r-- 1 root root  963 Jun 14 20:27 private.pem
-rw-r--r-- 1 root root  871 Jun 14 20:44 public.crt
-rw-r--r-- 1 root root 1372 Jun 14 20:57 ServerCert.jks
-rw-r--r-- 1 root root 1682 Jun 14 20:55 server.p12
1 楼 沈寅麟 2017-12-01  
Let’s Encrypt证书的默认有效期只有90天,所以需要定时更新服务端的证书避免过期

一条命令更新所有服务端的证书

./letsencrypt-auto renew
添加为定时任务, 编辑这个文件

sudo vi /etc/cron.monthly/letsencrypt_renew
添加如下内容:

#!/bin/sh
/path/to/letsencrypt/letsencrypt-auto --debug renew > /var/log/letsencrypt/renew.log 2>&1
授予/etc/cron.monthly/letsencrypt_renew可执行权限

sudo chmod a+x /etc/cron.monthly/letsencrypt_renew

作者:figotan
链接:http://www.jianshu.com/p/ba2a384e89ec
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关推荐

Global site tag (gtag.js) - Google Analytics