在WEB 服务中,nginx经常作为web服务器接受client的请求,然后跟后端的tomcat交互。
在通信协议里面可以配置http, 如果安全要求更高也可以配置https,,对于HTTP 和https协议的异同,可以看这里https://www.cnblogs.com/sucretan2010/p/11037497.html
首先整个的配置可以分成2个部分,,1.证书的安装 2.nginx 的nginx.conf里面的配置
1.证书
通常证书都是向专业的机构申请,付费购买的。当然也可以自己,制作一个自制的证书,当然这样纯粹是为了自己学习,作为正式的WEB 系统是不可行的。
ssl 证书,全称Secure socket layer,,通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议。
通常申请好的正式机构分发的证书,会是下面的内容:
证书certificate中包括含了数字签名和公钥, 客户端可以通过CA来验证数字签名.
公钥/私钥用于数据加密, 公钥可以发布给任何人, 私钥必须保密
1.证书文件通常以.cer, .crt结尾
2.公钥文件通常以.pem结尾
3.私钥文件通常以.key结尾
加密系统加载这些文件时, 并不是以后缀名的区分. 而是根据里面的内容
注意有一个 geotrust.txt 的文件
.获取服务器证书文件
将证书签发邮件中的包含服务器证书代码的文本复制出来(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘贴到记事本等文本编辑器中。
为保障服务器证书在客户端的兼容性,服务器证书需要安装中级CA证书。
在服务器证书代码文本结尾,回车换行不留空行,粘贴证书签发邮件中的“以下是您的中级CA证书”部分里的第一段CA证书的内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”),每串证书代码之间均需要使用回车换行不留空行,修改文件扩展名,保存包含两段证书代码的文本文件为server.pem文件。
2.安装服务器证书
复制server.key、server.pem文件到Nginx安装目录下的conf目录。
打开Nginx安装目录下conf目录中的nginx.conf文件
找到
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
将其修改为
server {
listen 443;
server_name www.yourdomain.com;
ssl on;
ssl_certificate server.pem;
ssl_certificate_key server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#启用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低于要求,请使用 ssl_protocols TLSv1;
ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出,并重启Nginx。
通过https方式访问您的站点,测试站点证书的安装配置。