Linux下Apache配置HTTPS功能

摘要:
(.*)$https://%{SERVER_NAME}/$1[L,R]4.修改加密文件ssl.conf。通过yum安装的httpd在conf.d目录conf配置文件中有ssl,我们需要配置一个VirtualHost并配置证书和密钥:LoadModulessl_modulemodules/mod_ssl。soListen443SSLPassPhraseDialogbuiltinSSLSessionCacheshmcb:/var/cache/mod_ssl/scacheSSLSession CacheTimeout300SSLMutexdefaultSSLRandomSeedstartupfile:/dev/urandom256SSLRandoSeedconnectbuiltinssLCryptoDevicebuiltin SSLProtocolall-SSLv2-SSLv3SSL荣誉密码订购SSLCipherSuiteALL:!RC4:#您必须有一个虚拟主机,以便可以使用跳转功能和端口443访问DocumentRoot“/home/store/webroot”服务器namehttps://xxx.com/ErrorLoglogs/ssl_error_logTransferLoglogs/ssl_access_logLogLevelwarnSSLEngineonSSLCertificateFile/etc/httpd/conf/cert/xxx.com.crtSSLCertificateKeyFile/etc/httpd/conf/cert/xxx.com.key5.重新启动Apache服务httpdrestart并输入https://domain名称或域名:443。如果两者可以正常访问,则https已成功配置。在浏览器中输入域名。如果可以跳转到https连接,跳转功能正常。
Apache配置HTTPS功能
转https://www.cnblogs.com/liaojiafa/p/6028816.html

一、yum 安装openssl和openssl-devel,httpd-devel
二、生成证书(也可以从公司的证书颁发机构获取):
#建立服务器密钥  
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
三、修改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]
四、修改加密文件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
</VirtualHost>
五、重启Apache

service httpd restart

  1. 在浏览器输入https://域名 或者 域名:443,如果两个能正常访问,表示https已经配置成功。
  2. 在浏览器输入 域名,如果能够正常跳转到https连接上,那说明跳转功能正常。
  • 启动apache 碰到下面问题:
Invalid command 'SSLPassPhraseDialog', perhaps misspelled or defined by a module not included in the server configuration

到apache的bin 目录下面执行 ./httpd -l 看看有没有mode_ssl.c,这个错误说明ssl模块安装没有成功。
解决办法:

  • 1、重新编译apache,加上--enable-ssl --with-ssl参数

  • 2、把ssl模块加入到已经编译好的apache中
    首先,使用 whereis openssl 命令获取lib和include的路径

[root@robot /usr/local/apache/modules]# whereis openssl
openssl: /usr/bin/openssl /usr/lib/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz

然后 在apache 源码的modules/ssl文件夹下,使用命令/usr/sbin/apxs -i -a -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/lib/openssl/ -c *.c -lcrypto -lssl -ldl(apxs需要安装http-devel才有,虽然如此,我还是没有编译成功,于是就在其他已经编译了这个模块的机器上拷贝mod_ssl.so到apache模块目录/usr/local/apache/modules)

免责声明:文章转载自《Linux下Apache配置HTTPS功能》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(iOS)Storyboard/xib小技巧tkinter基础-输入框、文本框下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux 里Buffer和Cache的定义及使用

Buffer 和 Cache 的介绍 查看内存使用情况 # 注意不同版本的free输出可能会有所不同 $ free total used free shared buff/cache available Mem: 8169348 263524 68753...

配置Tomcat使用https协议(配置SSL协议)

      配置Tomcat使用https协议(配置SSL协议) 内容概览: 如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 协议   1.生成安全证书   2.配置tomcat 环境: 1.Java 1.7 2.tomcat 7 -----------------------------------------------------...

svn_linux + apache 实现网页访问svn

CentOS7:搭建SVN + Apache 服务器实现网页访问 1. 安装httpd 安装httpd服务: $ sudo yum install httpd 检查httpd是否安装成功: $ httpd -version Server version: Apache/2.4.6 (CentOS) Server built: Jul 18 20...

Linux安装TeamViewer

  1、下载teamview centos版本 官网只有rpm版本,附件中即为官网下载的teamview最新版本 (下载tar包方式,我这里打不开teamviewer的界面,所以这里不推荐)  官方下载地址:  https://www.teamviewer.com/zhCN/download/linux/ 2、下载rpm版本后,cd切换到下载目录下,执行...

《转》vue 常用ui组件

vux github ui demo:https://github.com/airyland/vux Mint UI 项目主页:http://mint-ui.github.io/#!/zh-cndemo:http://elemefe.github.io/mint-ui/#/github地址:https://github.com/ElemeFE/mint-...

linux环境安装opencv导入依赖报错问题

linux环境通过pip安装opencv后,导入cv2时报错: 在centos和ubuntu环境下都遇到相同的问题。报错原因: 缺少共享库有两种解决办法:一.使用如下命令查看缺少得共享库yum whatprovides libSM.so.6使用以下命令解决:yum install libSM-1.2.2-2.el7.x86_64 --setopt=prot...