私はウェブサイトを持っています、主な要件はhttpsを使用してそのウェブサイトを安全にすることです
クライアントが別のマシンからアクセスする場合、証明書がブラウザー設定でアップロードされている場合にのみ機能する必要があります。そうでない場合は、そのWebサイトへのアクセスを拒否する必要があります。誰でも私がこれを達成するのを助けることができます。
Ubuntu 14.04を使用しています。詳細が必要な場合はお知らせください
Apacheの公式ドキュメント( このリンク を参照)がこの主題について本当によくできていることを調整しています。
要するに、次のような結果になるはずです。
LoadModule ssl_module modules/mod_ssl.so
Listen 443
<VirtualHost *:443>
DocumentRoot /var/www/yoursite/
<Directory /var/www/yoursite/>
AllowOverride All
order allow,deny
allow from all
</Directory>
ServerName www.example.com
SSLEngine on
SSLCertificateFile /path/to/www.example.com.cert
SSLCertificateKeyFile /path/to/www.example.com.key
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /path/to/www.example.com.ca.crt
</VirtualHost>
サーバー用とクライアント用の多くの有効な証明書を取得する必要があります。
サーバー用
インストールOpenSSLツール、まだ完了していない場合:Sudo apt-get install openssl
。
このツールを使用すると、サーバーの秘密キーを作成できます。
openssl genrsa -des3 -out server.pass.key 2048
上記のコマンドは、パスワード付きの秘密鍵を作成します。サーバーによって自動的にロードするには、パスワードを削除する必要があります。
openssl rsa -in server.pass.key -out server.key
これで、ファイルに有効なサーバー秘密鍵があります。これは、SSLCertificateKeyFile
Apacheディレクティブが指すファイルです。
この秘密鍵から、証明書署名要求(CSR)を作成します。
openssl req -nodes -new -key server.key -out server.csr
一連の要素(国、組織など)を入力するように求められます。最も重要なものは共通名(CN)であり、URLで使用されるWebサーバーのホスト名と一致する必要があります。したがって、私の例ではwww.example.comです。
次に、このCSRファイルを証明書プロバイダーに送信する必要があります。すべてのパブリックCAは適切です。彼らはあなたのリクエストを承認した後、あなたのサーバー用の有名なX.509証明書ファイルを送信します。このファイルは、SSLCertificateFile
Apacheのディレクティブによってポイントされます。
クライアント用
クライアントにも有効な証明書を提供する必要があります。
クライアントのタイプ(Linux、Windows、MACなど)に基づいて、プロセスは異なる場合があります。
クライアント証明書については、CA登録のページにアクセスすることにより、すべての操作をWebブラウザーから直接実行できる場合があります。 Webブラウザーから直接行う場合、証明書がWebブラウザーの証明書DBに自動的に登録されていることを確認してください。
外部手段(Linuxのopensslなど)で行う場合は、Webブラウザーの証明書ストアに秘密鍵と証明書ファイルをインポートする必要があります。