開始之前的話:
1.配置好服務器防火牆的443端口規則;
2.購買好證書文件,我是沃通證書,准備好證書,這里不演示證書的購買和安裝。
3.根據服務器類型下載文件,apache一共有4個文件
這里提供沃通apache安裝ssl教程,百度雲盤連接:鏈接:https://pan.baidu.com/s/1okIKQ67PtR82XFYXYhiK7w 提取碼:jfj5
4.我的apache是編譯安裝的,文件目錄在/usr/local/apache 按照以上文檔設置后發現是缺少mod-ssl.so這個模塊的。所以我設置好配置文件后重啟服務直接報錯
[root@www bin]# ./apachectl -k restart Syntax error on line 60 of /usr/local/apache/conf/extra/httpd-ssl.conf: Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration
查閱資料發現也的確是這個模塊未安裝,因為是編譯安裝的,所以只能下載對應的版本文件上傳編譯安裝這個模塊
5.查找自己的apache版本:
[root@www bin]# ./apachectl -v Server version: Apache/2.2.34 (Unix) Server built: Aug 4 2017 04:25:09
是apache/2.2.34版本,
6.根據服務器apache版本下載對應版本:apache歷史版本下載 (好像要梯子,我是直接香港服務器下載的)
去官網下載對應的版本httpd2.2.34.tar.gz
7.解壓下載的版本文件 將modules下的loggers,ssl兩個文件【一定是兩個文件否則出錯】放到服務器端apache的modules下
[root@www apache]# cd modules/ [root@www modules]# ls ##這里是沒有要上傳的兩個文件目錄 httpd.exp mod_authn_dbd.so mod_authz_owner.so mod_deflate.so mod_ident.so mod_mime.so mod_suexec.so libphp5.so mod_authn_dbm.so mod_authz_user.so mod_dir.so mod_imagemap.so mod_negotiation.so mod_unique_id.so mod_actions.so mod_authn_default.so mod_autoindex.so mod_dumpio.so mod_include.so mod_reqtimeout.so mod_userdir.so mod_alias.so mod_authn_file.so mod_cern_meta.so mod_env.so mod_info.so mod_rewrite.so mod_usertrack.so mod_asis.so mod_authz_dbm.so mod_cgi.so mod_expires.so mod_log_config.so mod_setenvif.so mod_version.so mod_auth_basic.so mod_authz_default.so mod_dav_fs.so mod_ext_filter.so mod_log_forensic.so mod_speling.so mod_vhost_alias.so mod_auth_digest.so mod_authz_groupfile.so mod_dav.so mod_filter.so mod_logio.so mod_status.so mod_authn_anon.so mod_authz_host.so mod_dbd.so mod_headers.so mod_mime_magic.so mod_substitute.so [root@www modules]# ll ###在這個文件目錄下也沒有所需的mod_ssl.so模塊 total 39248 -rw-r--r-- 1 root root 9377 Aug 4 2017 httpd.exp -rwxr-xr-x 1 root root 37156191 Aug 4 2017 libphp5.so drwxr-xr-x 2 root root 4096 Jul 1 15:32 loggers ##上傳好的文件 -rwxr-xr-x 1 root root 29682 Aug 4 2017 mod_actions.so -rwxr-xr-x 1 root root 42461 Aug 4 2017 mod_alias.so -rwxr-xr-x 1 root root 26746 Aug 4 2017 mod_asis.so -rwxr-xr-x 1 root root 31555 Aug 4 2017 mod_auth_basic.so -rwxr-xr-x 1 root root 75321 Aug 4 2017 mod_auth_digest.so -rwxr-xr-x 1 root root 28015 Aug 4 2017 mod_authn_anon.so -rwxr-xr-x 1 root root 33221 Aug 4 2017 mod_authn_dbd.so -rwxr-xr-x 1 root root 28936 Aug 4 2017 mod_authn_dbm.so -rwxr-xr-x 1 root root 25020 Aug 4 2017 mod_authn_default.so -rwxr-xr-x 1 root root 29331 Aug 4 2017 mod_authn_file.so -rwxr-xr-x 1 root root 32931 Aug 4 2017 mod_authz_dbm.so -rwxr-xr-x 1 root root 25082 Aug 4 2017 mod_authz_default.so -rwxr-xr-x 1 root root 32860 Aug 4 2017 mod_authz_groupfile.so -rwxr-xr-x 1 root root 32531 Aug 4 2017 mod_authz_host.so -rwxr-xr-x 1 root root 28441 Aug 4 2017 mod_authz_owner.so -rwxr-xr-x 1 root root 27019 Aug 4 2017 mod_authz_user.so -rwxr-xr-x 1 root root 96568 Aug 4 2017 mod_autoindex.so -rwxr-xr-x 1 root root 31153 Aug 4 2017 mod_cern_meta.so -rwxr-xr-x 1 root root 73833 Aug 4 2017 mod_cgi.so -rwxr-xr-x 1 root root 185754 Aug 4 2017 mod_dav_fs.so -rwxr-xr-x 1 root root 345418 Aug 4 2017 mod_dav.so -rwxr-xr-x 1 root root 56796 Aug 4 2017 mod_dbd.so -rwxr-xr-x 1 root root 71840 Aug 4 2017 mod_deflate.so -rwxr-xr-x 1 root root 31959 Aug 4 2017 mod_dir.so -rwxr-xr-x 1 root root 31867 Aug 4 2017 mod_dumpio.so -rwxr-xr-x 1 root root 28846 Aug 4 2017 mod_env.so -rwxr-xr-x 1 root root 37566 Aug 4 2017 mod_expires.so -rwxr-xr-x 1 root root 60673 Aug 4 2017 mod_ext_filter.so -rwxr-xr-x 1 root root 48974 Aug 4 2017 mod_filter.so -rwxr-xr-x 1 root root 55132 Aug 4 2017 mod_headers.so -rwxr-xr-x 1 root root 33238 Aug 4 2017 mod_ident.so -rwxr-xr-x 1 root root 47520 Aug 4 2017 mod_imagemap.so -rwxr-xr-x 1 root root 125357 Aug 4 2017 mod_include.so -rwxr-xr-x 1 root root 50893 Aug 4 2017 mod_info.so -rwxr-xr-x 1 root root 83862 Aug 4 2017 mod_log_config.so -rwxr-xr-x 1 root root 35269 Aug 4 2017 mod_log_forensic.so -rwxr-xr-x 1 root root 29510 Aug 4 2017 mod_logio.so -rwxr-xr-x 1 root root 76780 Aug 4 2017 mod_mime_magic.so -rwxr-xr-x 1 root root 51248 Aug 4 2017 mod_mime.so -rwxr-xr-x 1 root root 102460 Aug 4 2017 mod_negotiation.so -rwxr-xr-x 1 root root 41673 Aug 4 2017 mod_reqtimeout.so -rwxr-xr-x 1 root root 164579 Aug 4 2017 mod_rewrite.so -rwxr-xr-x 1 root root 39321 Aug 4 2017 mod_setenvif.so -rwxr-xr-x 1 root root 36386 Aug 4 2017 mod_speling.so -rwxr-xr-x 1 root root 58503 Aug 4 2017 mod_status.so -rwxr-xr-x 1 root root 41166 Aug 4 2017 mod_substitute.so -rwxr-xr-x 1 root root 27954 Aug 4 2017 mod_suexec.so -rwxr-xr-x 1 root root 30111 Aug 4 2017 mod_unique_id.so -rwxr-xr-x 1 root root 31342 Aug 4 2017 mod_userdir.so -rwxr-xr-x 1 root root 37930 Aug 4 2017 mod_usertrack.so -rwxr-xr-x 1 root root 23067 Aug 4 2017 mod_version.so -rwxr-xr-x 1 root root 37708 Aug 4 2017 mod_vhost_alias.so drwxr-xr-x 2 root root 4096 Jul 1 15:32 ssl ##上傳好的文件
8.cd到服務端的modules/ssl目錄;執行命令: apxs -i -c -a -D HAVE_OPENSSL=1 -I /usr/include/openssl -lcrypto -lssl -ldl *.c 即可
[root@www modules]# cd ssl/ [root@www ssl]# ls config.m4 mod_ssl.mak ssl_engine_dh.c ssl_engine_pphrase.c ssl_expr_parse.c ssl_scache.c ssl_util_ssl.c Makefile.in NWGNUmakefile ssl_engine_init.c ssl_engine_rand.c ssl_expr_parse.h ssl_scache_dbm.c ssl_util_ssl.h mod_ssl.c README ssl_engine_io.c ssl_engine_vars.c ssl_expr_parse.y ssl_scache_dc.c mod_ssl.dep README.dsov.fig ssl_engine_kernel.c ssl_expr.c ssl_expr_scan.c ssl_scache_shmcb.c mod_ssl.dsp README.dsov.ps ssl_engine_log.c ssl_expr_eval.c ssl_expr_scan.l ssl_toolkit_compat.h mod_ssl.h ssl_engine_config.c ssl_engine_mutex.c ssl_expr.h ssl_private.h ssl_util.c [root@www ssl]# apxs -i -c -a -D HAVE_OPENSSL=1 -I /usr/include/openssl -lcrypto -lssl -ldl *.c /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o mod_ssl.lo mod_ssl.c && touch mod_ssl.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_config.lo ssl_engine_config.c && touch ssl_engine_config.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_dh.lo ssl_engine_dh.c && touch ssl_engine_dh.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_init.lo ssl_engine_init.c && touch ssl_engine_init.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_io.lo ssl_engine_io.c && touch ssl_engine_io.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_kernel.lo ssl_engine_kernel.c && touch ssl_engine_kernel.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_log.lo ssl_engine_log.c && touch ssl_engine_log.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_mutex.lo ssl_engine_mutex.c && touch ssl_engine_mutex.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_pphrase.lo ssl_engine_pphrase.c && touch ssl_engine_pphrase.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_rand.lo ssl_engine_rand.c && touch ssl_engine_rand.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_engine_vars.lo ssl_engine_vars.c && touch ssl_engine_vars.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_expr.lo ssl_expr.c && touch ssl_expr.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_expr_eval.lo ssl_expr_eval.c && touch ssl_expr_eval.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_expr_parse.lo ssl_expr_parse.c && touch ssl_expr_parse.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_expr_scan.lo ssl_expr_scan.c && touch ssl_expr_scan.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_scache.lo ssl_scache.c && touch ssl_scache.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_scache_dbm.lo ssl_scache_dbm.c && touch ssl_scache_dbm.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_scache_dc.lo ssl_scache_dc.c && touch ssl_scache_dc.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_scache_shmcb.lo ssl_scache_shmcb.c && touch ssl_scache_shmcb.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_util.lo ssl_util.c && touch ssl_util.slo /usr/local/apache/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/local/apache/include -I/usr/include/openssl -DHAVE_OPENSSL=1 -c -o ssl_util_ssl.lo ssl_util_ssl.c && touch ssl_util_ssl.slo /usr/local/apache/build/libtool --silent --mode=link gcc -o mod_ssl.la -lcrypto -lssl -ldl -rpath /usr/local/apache/modules -module -avoid-version ssl_util_ssl.lo ssl_util.lo ssl_scache_shmcb.lo ssl_scache_dc.lo ssl_scache_dbm.lo ssl_scache.lo ssl_expr_scan.lo ssl_expr_parse.lo ssl_expr_eval.lo ssl_expr.lo ssl_engine_vars.lo ssl_engine_rand.lo ssl_engine_pphrase.lo ssl_engine_mutex.lo ssl_engine_log.lo ssl_engine_kernel.lo ssl_engine_io.lo ssl_engine_init.lo ssl_engine_dh.lo ssl_engine_config.lo mod_ssl.lo /usr/local/apache/build/instdso.sh SH_LIBTOOL='/usr/local/apache/build/libtool' mod_ssl.la /usr/local/apache/modules /usr/local/apache/build/libtool --mode=install cp mod_ssl.la /usr/local/apache/modules/ libtool: install: cp .libs/mod_ssl.so /usr/local/apache/modules/mod_ssl.so libtool: install: cp .libs/mod_ssl.lai /usr/local/apache/modules/mod_ssl.la libtool: install: cp .libs/mod_ssl.a /usr/local/apache/modules/mod_ssl.a libtool: install: chmod 644 /usr/local/apache/modules/mod_ssl.a libtool: install: ranlib /usr/local/apache/modules/mod_ssl.a libtool: finish: PATH="/usr/local/mysql/bin:/usr/local/php/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/local/apache/modules ---------------------------------------------------------------------- Libraries have been installed in: /usr/local/apache/modules ###庫已經安裝在這個目錄,安裝完成 If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- chmod 755 /usr/local/apache/modules/mod_ssl.so [activating module `ssl' in /usr/local/apache/conf/httpd.conf]
9.再次返回modlues目錄可以看到已經安裝mod_ssl.so
root@www ssl]# cd ..
[root@www modules]# ls
httpd.exp mod_authn_dbd.so mod_authz_user.so mod_dumpio.so mod_info.so mod_setenvif.so mod_version.so
libphp5.so mod_authn_dbm.so mod_autoindex.so mod_env.so mod_log_config.so mod_speling.so mod_vhost_alias.so
loggers mod_authn_default.so mod_cern_meta.so mod_expires.so mod_log_forensic.so mod_ssl.so ssl
mod_actions.so mod_authn_file.so mod_cgi.so mod_ext_filter.so mod_logio.so mod_status.so
mod_alias.so mod_authz_dbm.so mod_dav_fs.so mod_filter.so mod_mime_magic.so mod_substitute.so
mod_asis.so mod_authz_default.so mod_dav.so mod_headers.so mod_mime.so mod_suexec.so
mod_auth_basic.so mod_authz_groupfile.so mod_dbd.so mod_ident.so mod_negotiation.so mod_unique_id.so
mod_auth_digest.so mod_authz_host.so mod_deflate.so mod_imagemap.so mod_reqtimeout.so mod_userdir.so
mod_authn_anon.so mod_authz_owner.so mod_dir.so mod_include.so mod_rewrite.so mod_usertrack.so
10.重啟web服務器 ./apachectl -k restart即可 因為我的apache是編譯安裝的,所以在apache的安裝目錄下的bin文件目錄中執行這個重啟命令
[root@www bin]# ./ap apachectl apr-1-config apu-1-config apxs [root@www bin]# ./apachectl -k restart [root@www bin]#
11.查看https已經生效。
12.最后:如果不是缺少了這個mod_ssl.conf模塊的話不能正常加載的話那請一定按照百度雲盤分享的apache教程來弄,不要漏過步驟,
每個apche版本不一樣,可能有一些文件命令不一樣和路徑,但請記住一定按照教程來,通用性比較高,我的版本很低和這個教程有些路徑也不太一樣。
但是原理都一樣,如果不能成功配置請多檢查一下吧,本人親測可以使用!