基于腾讯云服务器作为实例说明
- 首先https是基于域名的,域名肯定是要有备案
- 在云服务器上找到SSL证书,并下载,上传到nginx的conf目录下
其中nginx目录下的第一个是证书,第二个是密钥,都需要上传到云服务器才可以使用
- 查看nginx中是否安装SSL模块
我们可以先排查一下nginx中是否有安装SSL模块,进入到nginx软件的目录的objs模块目录中,打开ngx_modules.c文件,搜索一下ssl,发现没有找到,那么就是没有安装ssl - 在nginx中安装SSL模块
回到nginx软件目录下,然后直接将下面代码粘贴过来即可在nginx中安装以下模块了,其中最后一行就是安装ssl的
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_ssl_module
将这些信息配置到nginx里面
然后make
之后执行make install 安装这些配置
-
再回到nginx中ngx_modules.c文件就可以发现SSL已经安装
或者使用sbin目录下命令 nginx -V 也可以看到版本信息
- 然后在云服务器中配置nginx
80端口代表的是http协议
443端口代表的是https协议
所以配置
server {
listen 443;
server_name localhost;
这里是需要贴ssl的配置信息的,这个需要从云服务提供商那里找,下面是腾讯云提供的参考
开启ssl
ssl on;
配置ssl证书
ssl_certificate ****.crt;
配置的证书的文件
ssl_certificate_key **.key;
ssl 会话cache
ssl_session_cache shared:SSL:1m;
ssl会话超时时间
ssl_session_timeout 5m;
配置加密套件,写法遵循openssl 标砖
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE_RSA-AES128-GCM-SHA256*******;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://tomcats/;
index index.html index.htm;
}
}
然后检测nginx配置,并使之生效即可