Apache 配置https(阿里云服务器apache配置SSL证书开启Https)

搞了两三个小时,盯屏幕盯得眼睛疼,终于搞好了,写个文章纪念一下,也给同样需要的同类们提供一个参考

首先说一下这具体的思路流程,方便大家有一个参考,我在我发的另一篇文章https://blog.csdn.net/guojun13598079464/article/details/81191703     提到我亲测的两种安装方式,而我使用的yum安装方式进行的安装,但是使用yum安装文件比较少,而搜索出来的文章大多是安装包安装的方式进行配置的https,很少有详细讲述yum安装并且是阿里云服务器的。

我这里主要说的是在阿里云服务器配置https,当然其他centOS的服务器也能;

在这篇文档中,我使用的是阿里云免费证书(https://www.aliyun.com/product/cas?spm=5176.8142029.388261.256.aJL1ix)。假设CentOS7 已经安装了Apache Web服务器,版本为httpd2.4.6。我们需要使用OpenSSL生成自签名证书。如果尚未安装OpenSSL,它可以使用yum来安装。

一、yum 安装openssl和openssl-devel,httpd-devel

# yum install mod_ssl openssl

安装完毕后,会自动生成 /etc/httpd/conf.d/ssl.conf 文件,下文配置会用到

这里提供一个自动生成证书的方式,没有测试,不保证能用

#建立服务器密钥  
openssl genrsa -des3 1024  > /usr/local/apache/conf/server.key   
# 从密钥中删除密码(以避免系统启动后被询问口令)
openssl rsa -in /usr/local/apache/conf/server.key > /usr/local/apache/conf/server2.key
mv /usr/local/apache/conf/server2.key  /usr/local/apache/conf/server.key
#建立服务器密钥请求文件
openssl req -new -key /usr/local/apache/conf/server.key -out /usr/local/apache/conf/server.csr
5>openssl x509 -in /usr/local/apache/conf/server.csr -out
# 建立服务器证书  
/usr/local/apache/conf/server.crt -req -signkey /usr/local/apache/conf/server.key -days 365

二、修改加密文件ssl.conf,通过yum安装好的httpd,在conf.d目录下面有ssl.conf配置文件,我们需要在里面配置一个VirtualHost和配置证书和密钥:

LoadModule ssl_module modules/mod_ssl.so
Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:!RC4:

<VirtualHost _default_:443>     # 必须有一个虚拟主机,这样才可以使用跳转功能和使用443端口访问
DocumentRoot "/home/store/webroot"
Servername https://xxx.com/
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLCertificateFile /etc/httpd/conf/cert/xxx.com.crt
SSLCertificateKeyFile /etc/httpd/conf/cert/xxx.com.key

SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt    #修改这三处标黑的地方换成你下载的证书地址,证书按照阿里云 文档要求的放在cert文件夹中
</VirtualHost>

<VirtualHost _default_:443>     # 必须有一个虚拟主机,这样才可以使用跳转功能和使用443端口访问
DocumentRoot "/home/store/webroot"
Servername https://xxx.com/
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLCertificateFile /etc/httpd/conf/cert/xxx.com.crt
SSLCertificateKeyFile /etc/httpd/conf/cert/xxx.com.key
</VirtualHost>

三、修改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最后配置即可,在httpd.conf文件尾加入如下内容:

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]

四、重启Apache

service httpd restart

到这里就配置成功了。。。

参考文章:https://www.cnblogs.com/liaojiafa/p/6028816.html

https://blog.csdn.net/dexter_wang/article/details/54835635

https://www.cnblogs.com/ryanlamp/p/6377637.html

https://blog.csdn.net/HQB421/article/details/77532828#commentsedit

猜你喜欢

转载自blog.csdn.net/guojun13598079464/article/details/81192130