转自:https://www.cnblogs.com/ccccwork/p/6529367.html
1、要搭建https,必须要具备的东西
1、超文本传输协议httpd(apache)和ssl模块(mod_ssl) 2、用于加密超文件传输的证书。(openssl制作自签名证书) 3、测试
2、安装httpd
yum install httpd mod_ssl -y
3、安装openssl
yum install openssl -y
这里介绍httpd默认的配置文件路径、www路径、默认的证书路径、默认的私钥路径。 配置文件路径 /etc/httpd/conf/httpd.conf www存放路径 /var/www/html 默认的证书路径 /etc/pki/tls/certs/ 默认的私钥路径 /etc/pki/tls/private/
4、利用openssl生成证书文件【注意!此处会在当前目录生成证书文件】
1.建立服务器密钥 openssl genrsa -out server.key 1024 2.建立服务器公钥,这里会让你输入一些证书属性,随便输就行了,最后还要输2次大于4位数的密码 openssl req -new -key server.key -out server.csr 3.建立服务器证书 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
5、vim /etc/httpd/conf/httpd.conf 修改配置文件【#如果不配置此段,则使用http访问的时候不会自动跳转到https,但是https输入对应的端口可以访问,即同台机器可同时存在http和https】
#添加如下代码,使能做到自动使用https协议打开网站 RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
6、vim /etc/httpd/conf.d/ssl.conf,修改ssl配置文件,指定私钥和证书的目录。
SSLCertificateKeyFile /opt/server.key SSLCertificateFile /opt/server.crt ###注意!此处的路径为步骤【4、利用openssl生成证书文件】中生成证书所在的路径
7.启动httpd服务,我发布版是rhel 7.3 所以命令变更为systemctl ,如果是6.*版本,请使用service httpd start
systemctl start httpd
或service httpd start
8、用IE浏览器验证,因为这是自签名证书,浏览器会报警说不安全,点继续流量就好了。
客户机上输入:https://服务器ip地址
SSL签名证书:
openssl genrsa -out ca.key 2048 openssl req -new -key ca.key -out ca.req -config /etc/pki/tls/openssl.cnf -subj "/C=CN/ST=fj/L=xm/O=ws/OU=wangsu/CN=aaa.aa.com/emailAddress=aa@aaa.com" openssl req -x509 -key ca.key -in ca.req -out ca.crt -days 36500 -config /etc/pki/tls/openssl.cnf openssl genrsa -out server.key 2048 openssl req -new -out server.csr -key server.key -days 36500 -config /etc/pki/tls/openssl.cnf -subj "/C=CN/ST=fj/L=xm/O=ws/OU=wangsu/CN=aaa.aa.com/emailAddress=aa@aaa.com" touch /etc/pki/CA/index.txt touch /etc/pki/CA/serial echo "01" >> /etc/pki/CA/serial openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -days 36500 -config /etc/pki/tls/openssl.cnf