盒子
导航
文章目录
  1. 一、Nginx配置
  2. 二、自签名证书
  3. 三、免费的证书

生成自签名的SSL证书用于https链接

存放在EverNote里面挺久的笔记。简单整理一下发出来备参考。

一、Nginx配置

安装好Nginx之后修改/usr/local/nginx下的nginx.conf,注释掉server这一节,加入一句指令来另外指定各个站点的配置文件路径:

#gzip on;
include /usr/local/nginx/conf/vhosts/*.conf;

然后新建 /usr/local/nginx/conf/vhosts 目录,新建fvpnd.conf文件,内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# HTTPS server
server {
#listen 80;
listen 443 ssl;
server_name localhost;
server_name 127.0.0.1;

ssl_certificate fvpnd.crt;
ssl_certificate_key fvpnd_nopass.key;
root /Users/Fury/sharework/MyGitRepos/AutoVPN/Server/fvpnd;
index index.html index.htm;

location / {
# for uWSGI
uwsgi_pass 127.0.0.1:53020;
include uwsgi_params;
}
}

二、自签名证书

如下4步记录创建自签名证书的步骤:

//由于nginx可执行文件是在/usr/local/nginx,而配置文件中指定证书时用了相对路径即当前目录,所以生成的证书需要放置在/usr/local/nginx目录下:
$ pwd
​$ /usr/local/nginx

//1.生成一个RSA密钥
$ openssl genrsa -des3 -out fvpnd.key 1024

//2.拷贝一个不需要输入密码的密钥文件
$ openssl rsa -in fvpnd.key -out fvpnd_nopass.key

//3.生成一个证书请求
$ openssl req -new -key fvpnd.key -out fvpnd.csr

//4.自己签发证书,有效期是365天即一年
$ openssl x509 -req -days 365 -in fvpnd.csr -signkey fvpnd.key -out fvpnd.crt

由于是自己签发证书,所以在第一次访问时浏览器会警告,将警告加入Exception就可以了。

三、免费的证书

有一些受浏览器信任的第三方的免费证书,例如StartSSL,但证书有效期只有1年。