使用nginx配置https域名证书
配置
使用https访问主域名发现无法访问
- 安装SSL模块
要在nginx中配置https,就必须安装SSL模块,也就是:http_ssl_module
。
-
进入到nginx的解压目录
-
新增SSL模块(原来的那些模块需要保留)
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.local \
--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
- 编译和安装
make
make install
- 查看模块
- 方式一:进入对应文件查看模块是否已添加
cd obj/
ll
vim ngx_modules.c
- 方式二:通过命令行查看
/usr/local/nginx/sbin/nginx -V
3. 配置HTTPS
- 把SSL证书
*.crt
和私钥.key
拷贝到/usr/local/nginx/conf
目录中
- 新增server监听443端口
server {
listen 443 ssl;
server_name www.xiaodunan.com;
#开启ssl
ssl on;
#配置ssl证书
ssl_certificate www.xiaodunan.com.crt;
#配置证书秘钥
ssl_certificate_key www.xiaodunan.com.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:HIGH:!aNULL:!MD5:!RC4:!DHE;
location / {
proxy_pass http://tomcats/;
index index.html index.htm;
}
}
- 检查语法并刷新
../sbin/nginx -t
../sbin/nginx -s reload
- 使用https访问主域名,可以访问 (因为是自己生成的证书不是买公有云的证书,所以会提示不安全)
报错
配置完成后使用https访问主域名还是不行,经过排错,发现是443端口并未启用
解决方法:重启nginx