本文详细介绍了在Nginx下配置Https证书的全过程。原文根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。
一、Http和Https的区别
HTTP:是互联网技术中广泛使用的一种互联网协议。它是手机客户端和服务器请求和回复的规范(TCP)。它是一种传输协议,用于将HTML文件从WWW网络服务器传输到本地计算机浏览器。可以让电脑浏览器更高效,减少数据传输。
HTTPS是一个以安全为总体目标的HTTP安全通道。简单来说就是HTTP的安全版本,就是在HTTP下面加了一层SSL。HTTPS的安全基本上是SSL,所以数据加密的详细内容一定是SSL。HTTPS的关键功能可以分为两种:一种是为网络信息创建安全通道,保证数据传输的安全;另一个是确定网站的真实性和有效性。
HTTPS和HTTP的主要区别如下:
1.https协议必须到ca申请证书。一般完全免费的证书很少,所以肯定是要花点钱的。
2.http是HTML文件传输协议,信息内容是密文传输,https是带安全因子的ssl加密传输协议。
3.http和https使用完全不同的接口方法和不同的端口号。前者80,后者443。
4.http连接非常简单,无状态;HttpS是由SSLHTTP协议构建的互联网协议,可以加密数据和认证身份。它比HTTP协议更安全。
二。应用openssl形成证书
Openssl是目前最流行的ssl密码库专用工具,为SSL/TLS协议的完成展现了一个通用、健壮、完善的专用工具模块。
例如到:/usr/local/ssl
opensslreq-x509-nodes-days36500-newkeyrsa:2048-keyout/usr/local/ssl/nginx.key-out/usr/local/ssl/nginx.crt整个形成过程:
#opensslreq-x509-nodes-days36500-newkeyrsa:2048-keyout/usr/local/ssl/nginx.key-out/usr/local/ssl/nginx.crt Generatinga2048bitRSAprivatekey ............................................................................... ............... writingnewprivatekeyto'/usr/local/ssl/nginx.key' ----- Youareabouttobeaskedtoenterinformationthatwillbeincorporated intoyourcertificaterequest. WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN. Therearequiteafewfieldsbutyoucanleavesomeblank Forsomefieldstherewillbeadefaultvalue, Ifyouenter'.',thefieldwillbeleftblank. ----- CountryName(2lettercode)[XX]:CN StateorProvinceName(fullname)[]:beijing LocalityName(eg,city)[DefaultCity]:beijing OrganizationName(eg,company)[DefaultCompanyLtd]:xxxx OrganizationalUnitName(eg,section)[]:xxxx CommonName(eg,yournameoryourserver'shostname)[]:xxxx(一般是网站域名) EmailAddress[]:xxxx@xxxx.com #ll total8 -rw-r--r--.1rootroot1391Apr2113:29nginx.crt -rw-r--r--.1rootroot1704Apr2113:29nginx.key三。Nginx安装http_ssl_module控制模块
Nginx如果SSL控制模块没有开启,配置Https时提醒不正确。
nginx:[emerg]"SSL"参数需要/usr/local/nginx/conf/nginx.conf:XXX中的ngx_http_ssl_module
Nginx缺少http_ssl_module控制模块,所以在安装编译器时携带-with-HTTP_SSL_Module配置就足够了。
在这个场景中,网络服务器已经安装了nginx,但是没有安装http_ssl_module。
1.转到源代码包,例如:
cd/app/download/nginx-1.12.22.配置:
./configure--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module #很有可能必须的依赖包 yum-yinstallpcre-developensslopenssl-devel3.制造:
make4.makeinstall是不必要的,否则它会覆盖安装。
5.备份数据的原始nginx,例如:
cp/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx_bak6.然后在编译完程序nginx(nginx必须终止)后把原来的nginx掩盖掉
cp./objs/nginx/usr/local/nginx/sbin/7.检查安装状态:
/usr/local/nginx/sbin/nginx-V nginxversion:nginx/1.12.2 builtbygcc4.8.520150623(RedHat4.8.5-16)(GCC) builtwithOpenSSL1.0.2m-fips26Jan2017 TLSSNIsupportenabled configurearguments:--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module四。nginx配置https
粘贴部分配置信息内容:
server{ listen80; server_namewww.yourdomain.com; rewrite^(.*)https://$server_name$1permanent;#http自动跳转https } server{ listen443ssl; server_namewww.yourdomain.com; ssl_certificate/usr/local/ssl/nginx.crt; ssl_certificate_key/usr/local/ssl/nginx.key; ssl_session_cacheshared:SSL:1米; ssl_session_timeout5m; #禁止在header中出現网络服务器版本,避免网络黑客运用版本系统漏洞进攻 server_tokensoff; #如果是整站HTTPS而且不考虑到HTTP得话,能够添加HSTS对你说的电脑浏览器本站整站数据加密,而且强制性用HTTPS浏览 fastcgi_paramHTTPSon; fastcgi_paramHTTP_SCHEMEhttps; access_log/usr/local/nginx/logs/httpsaccess.log; }先检查配置吧?
/usr/local/nginx/sbin/nginx-t nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful重启nginx:
/usr/local/nginx/sbin/nginx-sreload浏览:
至此,这篇关于在Nginx下配置Https证书的全过程的文章已经在这里详细介绍过了。有关在Nginx下配置Https证书的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)