OpenSSLのインストール・設定

更新:

OpenSSLのインストール・設定方法。
対象:Linux Fedora, RedHat

OpenSSLのインストール・設定
  • OpenSSL関連サイト
    https://www.openssl.org/
  • インストール関連情報
    rpmyum、apt-gettar.gzmake installシェル・環境変数
  • OpenSSLのインストール
    ベリサインなどの認証局を利用しないで、自分で認証キーを設定する方法。
    署名を認証局にしてもらうか否かの違い。
    Apache2.0以上ならmod_sslやsslパッチは必要ありません。
    ・古いバージョン削除
    	強制削除すると余計なものまで削除される場合があるので、
    	そのままの方が良いこともあります。
    	nslookupなどが使えなくなる場合があります。
    	rpm -qa | grep openssl
    	rpm -e --nodeps openssl-devel-0.9.7a-35
    	rpm -e --nodeps openssl-0.9.7a-35
    
    ・OpenSSLインストール
    	cd /usr/local/src/
    	./config -fPIC shared
    	make
    	make test
    	make install
    	
    	パス設定
    	vi ~/.bash_profile
    		export PATH=$PATH:/usr/local/ssl/bin
    
    ・Apache2再設定
    	./configure --enable-shared=yes \
    		--enable-dav=yes \
    		--enable-ssl \
    		--with-ssl=/usr/local/ssl
    	make
    	make install
    
    Apacheについては、Apacheのインストールを参照。
  • 認証ファイル作成
    同梱のCA.shを使うと設定が楽です。
    ・認証局ファイル作成(CA)
    	cd /usr/local/ssl/misc
    	./CA.sh -newca
    	CAの自己署名型証明書は、
    		demoCA/cacert.pem
    	CAの秘密鍵は、
    		demoCA/private/cakey.pem
    ・証明書署名要求ファイル作成(CSR)
    	cd /usr/local/ssl/misc
    	./CA.sh -newreq
    	証明書要求ファイルは、
    		newreq.pem
    	*証明書署名要求ファイル確認は、
    		openssl req -in newreq.pem -text
    	*秘密鍵ファイル確認は、
    		openssl rsa -in newreq.pem -text
    ・署名付き証明書作成(CRT)
    	cd /usr/local/ssl/misc
    	./CA.sh -sign
    		Sign the certificate? [y/n]:y
    		1 out of 1 certificate requests certified, commit? [y/n]y
    	CAの署名付きサイト証明書は、
    		newcert.pem
    	*署名付き証明書確認は、
    		openssl x509 -in newcert.pem -text
    
  • ssl.confの設定
    apacheのhttpd.confに
    	<IfModule mod_ssl.c>
    	    Include conf/ssl.conf
    	</IfModule>
    があるのを確認。
    
    作成した認証ファイルを適当なディレクトリにコピー
    mkdir /usr/local/apache2/conf/ssl
    cp /usr/local/ssl/misc/newreq.pem /usr/local/apache2/conf/ssl
    cp /usr/local/ssl/misc/newcert.pem /usr/local/apache2/conf/ssl
    cp /usr/local/ssl/misc/demoCA/cacert.pem /usr/local/apache2/conf/ssl
    
    ssl.confを自分の環境に合わせって設定
    vi /usr/local/apache2/conf/ssl.conf
    	<VirtualHost 192.168.11.2:443>
    
    	DocumentRoot "/usr/local/apache2/htdocs"
    	ServerName www.sample.co.jp
    	ServerAdmin root@sample.co.jp
    
    	SSLCACertificateFile /usr/local/apache2/conf/ssl/cacert.pem
    	SSLCertificateFile /usr/local/apache2/conf/ssl/newcert.pem
    	SSLCertificateKeyFile /usr/local/apache2/conf/ssl/newreq.pem
    
  • 起動・終了
    起動は、Apacheの起動時に、opensslを有効にして起動する。

    起動
    /usr/local/apache2/bin/apachectl startssl

    上記のままだと、起動時に認証パスワードを要求される。
    これを解除するには、
    openssl rsa -in newreq.pem -out newreq.pem
    を実行する。

    終了は、通常通りApacheを停止する。
    /usr/local/apache2/bin/apachectl stop
  • 認証ファイル作成(予備)
    認証ファイルの作成は、上記にあるように、同梱のCA.shを使った方が設定が楽です。
    以下は、CA.shを使わない場合の例です。
    ・server.key作成
    	openssl genrsa -des3 -out server.key 1024
    	確認は、
    		cat server.key
    ・CSR作成
    	openssl req -new -key server.key -out server.csr
    		openssl req -new -x509 -days 365 -key server.key -out server.crt
    	確認は、
    		openssl req -in server.csr -text
    ・CSRを署名してCRT作成
    	vi openssl.cnf
    		dir = /usr/local/ssl/misc/demoCA
    	
    	openssl ca -config ../openssl.cnf -policy policy_anything \
    		-in /usr/local/ssl/bin/server.csr -out server.crt
    
  • その他
    vi /etc/ld.so.conf
    	/usr/local/ssl/lib
    
    設定反映
    ldconfig
    
  • バージョン確認
    openssl version
    	OpenSSL 0.9.7e
    
このエントリーをはてなブックマークに追加