首先在网址(阿里云、腾讯云等)找到域名ssl下载,下载后解压里面有xxx.yey、xxx.pem、xxx.crt等文件
在服务器nginx配置里新建个文件夹,如我的nginx 在 /usr/local/nginx这个目录
cd /usr/local/nginx/conf
mkdir cert
如:
scp wys.cn.pem [email protected]:/usr/local/nginx/conf/cert
scp wys.cn.key [email protected]:/usr/local/nginx/conf/cert
scp wys.cn.crt [email protected]:/usr/local/nginx/conf/cert
·······
nginx -V
查询结果:
----有ssl插件
nginx version: nginx/1.13.7
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --with-http_ssl_module
-----没有ssl插件
nginx version: nginx/1.13.7
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments:
【如果不是root用户 执行命令前加sudo ,如sudo cd xxx】
先备份nginx启动文件
cd /usr/local/nginx/sbin/
cp nginx nginx.bak
再添加插件 重新编译nginx启动文件【make 不能是make install,会覆盖之前的配置】
然后拷贝新文件
cd /xxx/nginx-1.13.7
./configure --with-http_ssl_module
make
cp objs/nginx /usr/local/nginx/sbin/
容如下:
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name cloud.tencent.com;
#请填写证书文件的相对路径或绝对路径
ssl_certificate cloud.tencent.com_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
root html;
index index.html index.htm;
}
}
server {
listen 443 ssl;
server_name cloud.tencent.com;
ssl_certificate cloud.tencent.com_bundle.crt;
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
nginx -t
正常返回:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
若存在,请您重新配置或者根据提示修改存在问题。
若不存在,请执行3.
nginx -s reload
nginx -t
nginx: [emerg] BIO_new_file("/usr/local/nginx/conf/certt/wys.cn_bundle.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/usr/local/nginx/conf/certt/wys.cn_bundle.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
检查报错的文件路径是否和自己的文件路径不一致,修改正确即可。
./nginx -t
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:122
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
请按照 提前准备中的3.1步骤执行
首先使用systemctl status firewalld命令检查是否开启防火墙,如为未开启要systemctl start firewalld启动
systemctl status firewalld
--如果未启动则执行启动(一般是启动的)
systemctl start firewalld
然后使用命令开放443端口号。
firewall-cmd --zone=public --add-port=443/tcp --permanent
最后使用
firewall-cmd --reload
命令重新加载防火墙。
修改原来的80端口即可,修改后重新执行nginx -t和nginx -s reload
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#填写绑定证书的域名
server_name wys.cn www.wys.cn;
#把http的域名请求转成https
return 301 https://$host$request_uri;
# location / {
# root html;
# index index.html index.htm;
# }
如:
cp /usr/local/nginx/sbin/nginx /bin
之后在任意目录下 即可执行nginx 如 【nginx -t】 前面不加./
链接: 腾讯云官方 Nginx 服务器 SSL 证书安装部署文档
如果次篇文章对您有帮助的话,点个赞吧 谢谢!