从阿里云申请SSL证书到配置网站https
1.先从阿里云申请免费SSl证书
https://common-buy.aliyun.com/?spm=5176.2020520154.cas.3.1c52jRJqjRJqnj&commodityCode=cas#/buy
2.修改Apache的配置文件httpd.conf
打开ssl模块,没有这个模块就需要安装依赖包:mod_ssl,安装后就会在modules里面找到:
LoadModule ssl_module modules/mod_ssl.so
引入ssl配置文件,增加支持ssl:
Include conf/extra/httpd-ssl.conf(去掉行首的注释)
- 启动重定向(可选),使用用户HTTP访问自动重定向为HTTPS,直接在http.conf或者在.htaccess文件尾加入下面的内容:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
3.修改SSL模块的配置文件ssl.conf,在conf.d目录下面有ssl.conf配置文件,把从阿里云申请成功的证书文件public,key,cert引入即可
<VirtualHost _default_:443>
DocumentRoot "/var/www/html/"
ServerName www.example.com:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLCertificateFile /etc/httpd/cert/public.crt //这个是SSL证书里的公钥
SSLCertificateKeyFile /etc/httpd/cert/*.key //这个是私钥
SSLCertificateChainFile /etc/httpd/cert/*.crt //这个是证书文
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
4.重启Apache
service httpd restart
在浏览器输入https://域名 或者 域名:443,如果两个能正常访问,表示https已经配置成功。
5.有可能的问题
a.有可能apache没有ssl模块,需要编译或者yum安装ssl模块
b. 浏览器现在不允许在https页面里嵌入http的请求
页面的head中加入:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">可以自动将http的不安全请求升级为https
如果接口是http的需要改下代码接口