1 安装nginx
Linux中Nginx安装与配置(CentOS-6.5:nginx-1.5.0): https://blog.csdn.net/CleverCode/article/details/45442155。
2 使用openssl生成证书
2.1 配置
[root@localhost nginx]# mkdir /Data/apps/nginx/ssl
[ root@localhost ssl]# openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /Data/apps/nginx/ssl/clevercode.key -out /Data/apps/nginx/ssl/clevercode.crt
生成过程
2.2 配置参数说明
-x509 指定使用 X.509 证书签名请求(Certificate Signing Request,CSR)管理。
-node 告诉 openssl 在生成证书时忽略密码环节(此处需要 Nginx 自动读取此文件,而非是以用户交互的形式)。
-day 指定证书的有效期。
-newkey rsa:2048 表示生成一个新证书和一个新的 SSL key(加密强度为 RSA 2048)。
-keyout 指定 SSL 输出文件名。
-out 指定生成的证书文件名。
3 配置nginx
vim /Data/apps/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
listen 443 ssl;
server_name www.clevercode.com;
ssl_certificate /Data/apps/nginx/ssl/clevercode.crt;
ssl_certificate_key /Data/apps/nginx/ssl/clevercode.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
}
配置说明:
listen,监听 443 端口并使用 ssl 参数。
ssl_certificate,指定服务器证书的路径。
ssl_certificate_key,指定私钥的路径。
ssl_protocols,指定 SSL 协议(Nginx 默认使用)。
ssl_ciphers,以 OpenSSL 库理解的格式指定密码(Nginx 默认使用)。
server_tokens,关闭(显示)Nginx 版本号。
4 重启nginx
# pkill -9 nginx
# /Data/apps/nginx/sbin/nginx -c /Data/apps/nginx/conf/nginx.conf
5 配置host
配置机器的host。将域名配置到自己的虚拟机上面
172.16.159.141 www.clevercode.com
6 https访问页面
因为不是CA颁发的证书,浏览器会验证不通过的。这里点击继续访问。
点击不安全图标。选择证书。
可以看到证书不受信任。同时可以看到证明的一些填写信息。
7 参考资料
《https原理通俗了解》:https://www.cnblogs.com/zhangshitong/p/6478721.html。
《深入浅出HTTPS工作原理 》:https://www.sohu.com/a/148408663_236714。
《nginx 配置 HTTP 和 HTTPS》:http://www.cnblogs.com/reghao/p/8504719.html。
技术交流
CleverCode是一名架构师,技术交流,咨询问题,请加CleverCode创建的qq群(架构师俱乐部):517133582。加群和腾讯,阿里,百度,新浪等公司的架构师交流。【架构师俱乐部】宗旨:帮助你成长为架构师!