0%

SSL证书申请历程

一、 安装acme.sh

1
2
3
4
5
6
7
8
9
10
11
1.mkdir ~/.acme.sh

2. 在~/.acme.sh目录下运行
curl https://get.acme.sh | sh
等待安装完成

3. alias acme.sh=~/.acme.sh/acme.sh

4. 编译安装socat
wget http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz
./configure --prefix=$HOME && make && make install

二、 关闭nginx服务器,确保80和443端口是通的
三、使用acme.sh申请和安装证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.acme.sh假装自己是一个webserver,临时监听80端口, 完成验证
acme.sh --issue --standalone -d example.com

安装完成后会告诉你证书的安装地址一般是在/root/.acme.sh/example.com/

2.验证完成之后记得启动nginx服务器
/path/to/nginx/nginx/sbin/nginx

3. 安装证书
acme.sh --installcert -d example.com \
--keypath /path/to/nginx/ssl/example.com.key \
--fullchainpath /path/to/nginx/ssl/example.com.key.pem \
--reloadcmd "/path/to/nginx/nginx/sbin/nginx -s reload"

4. 运行以下命令
openssl dhparam -out /path/to/nginx/ssl/dhparam.pem 2048

四、更新nginx配置文件(放在server模块里面)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
listen   80 ;
listen 443 ssl;
server_name example.com;
charset utf-8;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
#SSL_START
ssl_certificate /path/to/nginx/ssl/example.com.key.pem;
ssl_certificate_key /path/to/nginx/ssl/example.com.key;
ssl_dhparam /path/to/nginx/ssl/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#SSL_END

然后reload一下nginx,就大功告成了!

Welcome to my other publishing channels